{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Search Algorithms\n",
    "\n",
    ":label:`course_alg`\n",
    "\n",
    "\n",
    "## AutoGluon System Implementatin Logic\n",
    "\n",
    "![](https://raw.githubusercontent.com/zhanghang1989/AutoGluonWebdata/master/doc/api/autogluon_system.png)\n",
    "\n",
    "Important components of the AutoGluon system include the Searcher, Scheduler and Resource Manager:\n",
    "\n",
    "- The Searcher suggests hyperparameter configurations for the next training job.\n",
    "- The Scheduler runs the training job when computation resources become available.\n",
    "\n",
    "In this tutorial, we illustrate how various search algorithms work and\n",
    "compare their performance via toy experiments.\n",
    "\n",
    "## FIFO Scheduling vs. Early Stopping\n",
    "\n",
    "In this section, we compare the different behaviors of a sequential First In, First Out (FIFO) scheduler using :class:`autogluon.scheduler.FIFOScheduler` vs. a preemptive scheduling algorithm\n",
    ":class:`autogluon.scheduler.HyperbandScheduler` that early-terminates certain training jobs that do not appear promising during their early stages.\n",
    "\n",
    "### Create a Dummy Training Function"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "import numpy as np\n",
    "import autogluon as ag\n",
    "\n",
    "@ag.args(\n",
    "    lr=ag.space.Real(1e-3, 1e-2, log=True),\n",
    "    wd=ag.space.Real(1e-3, 1e-2))\n",
    "def train_fn(args, reporter):\n",
    "    for e in range(10):\n",
    "        dummy_accuracy = 1 - np.power(1.8, -np.random.uniform(e, 2*e))\n",
    "        reporter(epoch=e, accuracy=dummy_accuracy, lr=args.lr, wd=args.wd)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### FIFO Scheduler\n",
    "\n",
    "This scheduler runs training trials in order. When there are more resources available than required for a single training job, multiple training jobs may be run in parallel."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Starting Experiments\n",
      "Num of Finished Tasks is 0\n",
      "Num of Pending Tasks is 20\n"
     ]
    },
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "a26426ba84be43a2865b1405718ec4f4",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "HBox(children=(FloatProgress(value=0.0, max=20.0), HTML(value='')))"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Finished Task with config: {'lr': 0.0011307168688472417, 'wd': 0.007746055873448366} and reward: 0.9987710776248258\n",
      "Finished Task with config: {'lr': 0.005646024543966616, 'wd': 0.0030570778814307284} and reward: 0.9995104379366804\n",
      "Finished Task with config: {'lr': 0.001397936834616762, 'wd': 0.0076226521657866446} and reward: 0.9994946008106337\n",
      "Finished Task with config: {'lr': 0.0031622777, 'wd': 0.0055} and reward: 0.9997084979745358\n",
      "Finished Task with config: {'lr': 0.003291785973128472, 'wd': 0.001995829575530173} and reward: 0.9981324732151834\n",
      "Finished Task with config: {'lr': 0.009746802005000976, 'wd': 0.007641267511921505} and reward: 0.9998127858805036\n",
      "Finished Task with config: {'lr': 0.004184264695030874, 'wd': 0.006506473661170444} and reward: 0.9996418284140945\n",
      "Finished Task with config: {'lr': 0.005378185640470667, 'wd': 0.009695306133904284} and reward: 0.9995987038392062\n",
      "Finished Task with config: {'lr': 0.009820961984808608, 'wd': 0.005629661901432697} and reward: 0.9991894482946119\n",
      "Finished Task with config: {'lr': 0.0019349436462495638, 'wd': 0.00782694955509142} and reward: 0.9968406995955217\n",
      "Finished Task with config: {'lr': 0.0025399117442970083, 'wd': 0.0075702985164992145} and reward: 0.9999440389170993\n",
      "Finished Task with config: {'lr': 0.0018830956437977807, 'wd': 0.0029638504866076193} and reward: 0.997560417275033\n",
      "Finished Task with config: {'lr': 0.0022244068943444665, 'wd': 0.008456055817425659} and reward: 0.9998894026211204\n",
      "Finished Task with config: {'lr': 0.0038070757292639128, 'wd': 0.0063594500287419715} and reward: 0.9984360433059107\n",
      "Finished Task with config: {'lr': 0.003150407761853787, 'wd': 0.004059248667028382} and reward: 0.9999652768067441\n",
      "Finished Task with config: {'lr': 0.006268053699663002, 'wd': 0.004710366507240599} and reward: 0.9986559472047832\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Finished Task with config: {'lr': 0.0018809501139323956, 'wd': 0.002112824115858096} and reward: 0.9992405701254338\n",
      "Finished Task with config: {'lr': 0.002188081629961302, 'wd': 0.004512974465647135} and reward: 0.9998253586497194\n",
      "Finished Task with config: {'lr': 0.001984946177076318, 'wd': 0.008932131444689712} and reward: 0.9956597381250288\n",
      "Finished Task with config: {'lr': 0.008451749810727778, 'wd': 0.0011382940220170002} and reward: 0.9981920526565943\n"
     ]
    }
   ],
   "source": [
    "scheduler = ag.scheduler.FIFOScheduler(train_fn,\n",
    "                                       resource={'num_cpus': 2, 'num_gpus': 0},\n",
    "                                       num_trials=20,\n",
    "                                       reward_attr='accuracy',\n",
    "                                       time_attr='epoch')\n",
    "scheduler.run()\n",
    "scheduler.join_jobs()\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Visualize the results:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "scheduler.get_training_curves(plot=True, use_legend=False)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Hyperband Scheduler\n",
    "\n",
    "The Hyperband Scheduler terminates training trials that don't appear promising during the early stages to free up compute resources for more promising hyperparameter configurations."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Starting Experiments\n",
      "Num of Finished Tasks is 0\n",
      "Num of Pending Tasks is 20\n"
     ]
    },
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "449d81fe14204556923f40a5997fcc0c",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "HBox(children=(FloatProgress(value=0.0, max=20.0), HTML(value='')))"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Finished Task with config: {'lr': 0.0031622777, 'wd': 0.0055} and reward: 0.9997699754494808\n",
      "Finished Task with config: {'lr': 0.002614225397094559, 'wd': 0.0015729319121477875} and reward: 0.9363001183692645\n",
      "Finished Task with config: {'lr': 0.0054603804934269095, 'wd': 0.005929383706003144} and reward: 0.9994296287730586\n",
      "Finished Task with config: {'lr': 0.005908884211064137, 'wd': 0.00438489907200979} and reward: 0.999338740990627\n",
      "Finished Task with config: {'lr': 0.0025514721867874474, 'wd': 0.004581643040131419} and reward: 0.6054625760180542\n",
      "Finished Task with config: {'lr': 0.00957631678097124, 'wd': 0.006260667368179296} and reward: 0.5906063229485552\n",
      "Finished Task with config: {'lr': 0.0016826978858466815, 'wd': 0.007830129464376334} and reward: 0.600553651320286\n",
      "Finished Task with config: {'lr': 0.006512096812145744, 'wd': 0.002229407867032529} and reward: 0.999848989499412\n",
      "Finished Task with config: {'lr': 0.0010862040450477298, 'wd': 0.003088340539993438} and reward: 0.5558467195070161\n",
      "Finished Task with config: {'lr': 0.006025262773191383, 'wd': 0.006184314374047992} and reward: 0.5301071514197571\n",
      "Finished Task with config: {'lr': 0.006376705305794368, 'wd': 0.004260325922441693} and reward: 0.9416078718398605\n",
      "Finished Task with config: {'lr': 0.004711724973863852, 'wd': 0.0084343531882303} and reward: 0.5537434694264384\n",
      "Finished Task with config: {'lr': 0.004295404252682618, 'wd': 0.007345296248643043} and reward: 0.5735568507416069\n",
      "Finished Task with config: {'lr': 0.007467067477625703, 'wd': 0.0024063076118502787} and reward: 0.9078010080001341\n",
      "Finished Task with config: {'lr': 0.0032424612493022896, 'wd': 0.00680135795311845} and reward: 0.5365378006043358\n",
      "Finished Task with config: {'lr': 0.007714303863128881, 'wd': 0.004095236116589636} and reward: 0.6099215773475833\n",
      "Finished Task with config: {'lr': 0.0066600400071635335, 'wd': 0.0026368906692748276} and reward: 0.5770821737380238\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Finished Task with config: {'lr': 0.009714677207958827, 'wd': 0.0021051949570150656} and reward: 0.9966026462873852\n",
      "Finished Task with config: {'lr': 0.0015517445577210903, 'wd': 0.004141643824608779} and reward: 0.4622331004750234\n",
      "Finished Task with config: {'lr': 0.0015424146042061972, 'wd': 0.006040254397355476} and reward: 0.9999623401474572\n"
     ]
    }
   ],
   "source": [
    "scheduler = ag.scheduler.HyperbandScheduler(train_fn,\n",
    "                                            resource={'num_cpus': 2, 'num_gpus': 0},\n",
    "                                            num_trials=20,\n",
    "                                            reward_attr='accuracy',\n",
    "                                            time_attr='epoch',\n",
    "                                            grace_period=1)\n",
    "scheduler.run()\n",
    "scheduler.join_jobs()\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Visualize the results:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "scheduler.get_training_curves(plot=True, use_legend=False)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Random Search vs. Reinforcement Learning\n",
    "\n",
    "In this section, we demonstrate the behaviors of random search and reinforcement learning\n",
    "in a simple simulation environment.\n",
    "\n",
    "### Create a Reward Function for Toy Experiments\n",
    "\n",
    "Import the packages:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [],
   "source": [
    "import matplotlib.pyplot as plt\n",
    "from mpl_toolkits.mplot3d import Axes3D"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Input Space `x = [0: 99], y = [0: 99]`.\n",
    "The rewards is a combination of 2 gaussians as shown in the following figure:\n",
    "\n",
    "Generate the simulated reward as a mixture of 2 gaussians:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [],
   "source": [
    "def gaussian2d(x, y, x0, y0, xalpha, yalpha, A): \n",
    "    return A * np.exp( -((x-x0)/xalpha)**2 -((y-y0)/yalpha)**2) \n",
    "\n",
    "x, y = np.linspace(0, 99, 100), np.linspace(0, 99, 100) \n",
    "X, Y = np.meshgrid(x, y)\n",
    "\n",
    "Z = np.zeros(X.shape) \n",
    "ps = [(20, 70, 35, 40, 1),\n",
    "      (80, 40, 20, 20, 0.7)]\n",
    "for p in ps:\n",
    "    Z += gaussian2d(X, Y, *p)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Visualize the reward space:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "fig = plt.figure()\n",
    "ax = fig.gca(projection='3d') \n",
    "ax.plot_surface(X, Y, Z, cmap='plasma') \n",
    "ax.set_zlim(0,np.max(Z)+2)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Create Training Function\n",
    "\n",
    "We can simply define an AutoGluon searchable function with a decorator `ag.args`.\n",
    "The `reporter` is used to communicate with AutoGluon search and scheduling algorithms."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [],
   "source": [
    "@ag.args(\n",
    "    x=ag.space.Categorical(*list(range(100))),\n",
    "    y=ag.space.Categorical(*list(range(100))),\n",
    ")\n",
    "def rl_simulation(args, reporter):\n",
    "    x, y = args.x, args.y\n",
    "    reporter(accuracy=Z[y][x])"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Random Search"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Starting Experiments\n",
      "Num of Finished Tasks is 0\n",
      "Num of Pending Tasks is 300\n"
     ]
    },
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "a150fb22de5243998b38c0cfef6e28f8",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "HBox(children=(FloatProgress(value=0.0, max=300.0), HTML(value='')))"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Finished Task with config: {'x.choice': 0, 'y.choice': 0} and reward: 0.033741370964360654\n",
      "Finished Task with config: {'x.choice': 63, 'y.choice': 44} and reward: 0.4714235575231762\n",
      "Finished Task with config: {'x.choice': 30, 'y.choice': 82} and reward: 0.8423049539671549\n",
      "Finished Task with config: {'x.choice': 1, 'y.choice': 40} and reward: 0.42435131177797863\n",
      "Finished Task with config: {'x.choice': 97, 'y.choice': 65} and reward: 0.07902631001540152\n",
      "Finished Task with config: {'x.choice': 36, 'y.choice': 30} and reward: 0.3028123315883148\n",
      "Finished Task with config: {'x.choice': 48, 'y.choice': 51} and reward: 0.4607765146528751\n",
      "Finished Task with config: {'x.choice': 76, 'y.choice': 91} and reward: 0.05969045547292743\n",
      "Finished Task with config: {'x.choice': 59, 'y.choice': 32} and reward: 0.3152316636749103\n",
      "Finished Task with config: {'x.choice': 82, 'y.choice': 6} and reward: 0.041869054970490524\n",
      "Finished Task with config: {'x.choice': 85, 'y.choice': 12} and reward: 0.09650867808092636\n",
      "Finished Task with config: {'x.choice': 93, 'y.choice': 8} and reward: 0.036633925006584356\n",
      "Finished Task with config: {'x.choice': 93, 'y.choice': 82} and reward: 0.017370137360908464\n",
      "Finished Task with config: {'x.choice': 37, 'y.choice': 13} and reward: 0.10478182145129125\n",
      "Finished Task with config: {'x.choice': 75, 'y.choice': 64} and reward: 0.23855472251399745\n",
      "Finished Task with config: {'x.choice': 35, 'y.choice': 61} and reward: 0.7925968567194351\n",
      "Finished Task with config: {'x.choice': 15, 'y.choice': 21} and reward: 0.2184933822013617\n",
      "Finished Task with config: {'x.choice': 64, 'y.choice': 20} and reward: 0.178943136915675\n",
      "Finished Task with config: {'x.choice': 3, 'y.choice': 58} and reward: 0.7218642264692315\n",
      "Finished Task with config: {'x.choice': 73, 'y.choice': 83} and reward: 0.09692375804300317\n",
      "Finished Task with config: {'x.choice': 52, 'y.choice': 83} and reward: 0.3909944869112706\n",
      "Finished Task with config: {'x.choice': 13, 'y.choice': 42} and reward: 0.5886142355284978\n",
      "Finished Task with config: {'x.choice': 7, 'y.choice': 26} and reward: 0.25977056473925114\n",
      "Finished Task with config: {'x.choice': 73, 'y.choice': 75} and reward: 0.1283565163220248\n",
      "Finished Task with config: {'x.choice': 98, 'y.choice': 88} and reward: 0.006671340230915448\n",
      "Finished Task with config: {'x.choice': 71, 'y.choice': 75} and reward: 0.14452333090741692\n",
      "Finished Task with config: {'x.choice': 72, 'y.choice': 26} and reward: 0.3982313819933687\n",
      "Finished Task with config: {'x.choice': 32, 'y.choice': 49} and reward: 0.676711368380443\n",
      "Finished Task with config: {'x.choice': 59, 'y.choice': 8} and reward: 0.04411185926125333\n",
      "Finished Task with config: {'x.choice': 12, 'y.choice': 55} and reward: 0.8245930529793417\n",
      "Finished Task with config: {'x.choice': 91, 'y.choice': 80} and reward: 0.024809512770196083\n",
      "Finished Task with config: {'x.choice': 32, 'y.choice': 98} and reward: 0.5446836460407543\n",
      "Finished Task with config: {'x.choice': 37, 'y.choice': 15} and reward: 0.12069085258067971\n",
      "Finished Task with config: {'x.choice': 68, 'y.choice': 89} and reward: 0.12287771545417772\n",
      "Finished Task with config: {'x.choice': 1, 'y.choice': 27} and reward: 0.2344955776490833\n",
      "Finished Task with config: {'x.choice': 15, 'y.choice': 94} and reward: 0.6835823514188921\n",
      "Finished Task with config: {'x.choice': 36, 'y.choice': 31} and reward: 0.3181304693000122\n",
      "Finished Task with config: {'x.choice': 71, 'y.choice': 80} and reward: 0.12286238097682448\n",
      "Finished Task with config: {'x.choice': 46, 'y.choice': 41} and reward: 0.37926481601112605\n",
      "Finished Task with config: {'x.choice': 67, 'y.choice': 80} and reward: 0.16318064121218506\n",
      "Finished Task with config: {'x.choice': 55, 'y.choice': 17} and reward: 0.10266762912806686\n",
      "Finished Task with config: {'x.choice': 17, 'y.choice': 72} and reward: 0.9902040382974465\n",
      "Finished Task with config: {'x.choice': 74, 'y.choice': 66} and reward: 0.20963899472613967\n",
      "Finished Task with config: {'x.choice': 72, 'y.choice': 79} and reward: 0.11787318989020966\n",
      "Finished Task with config: {'x.choice': 84, 'y.choice': 38} and reward: 0.6844777212854323\n",
      "Finished Task with config: {'x.choice': 61, 'y.choice': 83} and reward: 0.2309132047739685\n",
      "Finished Task with config: {'x.choice': 8, 'y.choice': 17} and reward: 0.15363537724906412\n",
      "Finished Task with config: {'x.choice': 33, 'y.choice': 28} and reward: 0.2912028328612199\n",
      "Finished Task with config: {'x.choice': 95, 'y.choice': 67} and reward: 0.07453966808441562\n",
      "Finished Task with config: {'x.choice': 16, 'y.choice': 27} and reward: 0.3107913462145584\n",
      "Finished Task with config: {'x.choice': 27, 'y.choice': 48} and reward: 0.7105249556210939\n",
      "Finished Task with config: {'x.choice': 6, 'y.choice': 12} and reward: 0.1040900461530768\n",
      "Finished Task with config: {'x.choice': 60, 'y.choice': 10} and reward: 0.05569125726136062\n",
      "Finished Task with config: {'x.choice': 36, 'y.choice': 93} and reward: 0.582983656267577\n",
      "Finished Task with config: {'x.choice': 78, 'y.choice': 46} and reward: 0.6781604261757788\n",
      "Finished Task with config: {'x.choice': 61, 'y.choice': 90} and reward: 0.1980029680470749\n",
      "Finished Task with config: {'x.choice': 87, 'y.choice': 17} and reward: 0.1694488920477404\n",
      "Finished Task with config: {'x.choice': 89, 'y.choice': 29} and reward: 0.42962888059299453\n",
      "Finished Task with config: {'x.choice': 81, 'y.choice': 86} and reward: 0.0443825722405481\n",
      "Finished Task with config: {'x.choice': 59, 'y.choice': 94} and reward: 0.2017257520819011\n",
      "Finished Task with config: {'x.choice': 64, 'y.choice': 7} and reward: 0.04148517774355545\n",
      "Finished Task with config: {'x.choice': 78, 'y.choice': 55} and reward: 0.45063664499891576\n",
      "Finished Task with config: {'x.choice': 61, 'y.choice': 26} and reward: 0.24952146576467027\n",
      "Finished Task with config: {'x.choice': 37, 'y.choice': 33} and reward: 0.3417845317779235\n",
      "Finished Task with config: {'x.choice': 68, 'y.choice': 82} and reward: 0.14527932644903058\n",
      "Finished Task with config: {'x.choice': 3, 'y.choice': 36} and reward: 0.3834992067288933\n",
      "Finished Task with config: {'x.choice': 38, 'y.choice': 13} and reward: 0.10212500102694089\n",
      "Finished Task with config: {'x.choice': 37, 'y.choice': 12} and reward: 0.0974491825203402\n",
      "Finished Task with config: {'x.choice': 83, 'y.choice': 70} and reward: 0.11130185064919387\n",
      "Finished Task with config: {'x.choice': 64, 'y.choice': 30} and reward: 0.3632021090955917\n",
      "Finished Task with config: {'x.choice': 42, 'y.choice': 19} and reward: 0.13884665982255376\n",
      "Finished Task with config: {'x.choice': 4, 'y.choice': 11} and reward: 0.0921254453046011\n",
      "Finished Task with config: {'x.choice': 74, 'y.choice': 1} and reward: 0.01899559842775371\n",
      "Finished Task with config: {'x.choice': 11, 'y.choice': 90} and reward: 0.7289701922004186\n",
      "Finished Task with config: {'x.choice': 17, 'y.choice': 57} and reward: 0.8931923971186357\n",
      "Finished Task with config: {'x.choice': 5, 'y.choice': 64} and reward: 0.8136920429546238\n",
      "Finished Task with config: {'x.choice': 90, 'y.choice': 86} and reward: 0.01835612670679677\n",
      "Finished Task with config: {'x.choice': 6, 'y.choice': 23} and reward: 0.2142475404276215\n",
      "Finished Task with config: {'x.choice': 89, 'y.choice': 81} and reward: 0.027573340357547153\n",
      "Finished Task with config: {'x.choice': 1, 'y.choice': 36} and reward: 0.3616083474072007\n",
      "Finished Task with config: {'x.choice': 97, 'y.choice': 49} and reward: 0.2835742186235701\n",
      "Finished Task with config: {'x.choice': 54, 'y.choice': 55} and reward: 0.41173415642837996\n",
      "Finished Task with config: {'x.choice': 50, 'y.choice': 97} and reward: 0.30414616689330576\n",
      "Finished Task with config: {'x.choice': 51, 'y.choice': 84} and reward: 0.4044138259917393\n",
      "Finished Task with config: {'x.choice': 7, 'y.choice': 74} and reward: 0.8624663806244796\n",
      "Finished Task with config: {'x.choice': 65, 'y.choice': 55} and reward: 0.3936025771074463\n",
      "Finished Task with config: {'x.choice': 88, 'y.choice': 74} and reward: 0.05586706260735992\n",
      "Finished Task with config: {'x.choice': 41, 'y.choice': 98} and reward: 0.4274184095251255\n",
      "Finished Task with config: {'x.choice': 15, 'y.choice': 84} and reward: 0.8668338155924933\n",
      "Finished Task with config: {'x.choice': 71, 'y.choice': 26} and reward: 0.38590300674133127\n",
      "Finished Task with config: {'x.choice': 51, 'y.choice': 67} and reward: 0.4676121945526224\n",
      "Finished Task with config: {'x.choice': 90, 'y.choice': 52} and reward: 0.39530374305272736\n",
      "Finished Task with config: {'x.choice': 3, 'y.choice': 9} and reward: 0.07718554599372038\n",
      "Finished Task with config: {'x.choice': 81, 'y.choice': 56} and reward: 0.4106066641367292\n",
      "Finished Task with config: {'x.choice': 98, 'y.choice': 89} and reward: 0.006329966392653673\n",
      "Finished Task with config: {'x.choice': 25, 'y.choice': 61} and reward: 0.9315517660062929\n",
      "Finished Task with config: {'x.choice': 95, 'y.choice': 70} and reward: 0.052172494908201306\n",
      "Finished Task with config: {'x.choice': 63, 'y.choice': 0} and reward: 0.016563467777774333\n",
      "Finished Task with config: {'x.choice': 14, 'y.choice': 92} and reward: 0.7175678767943938\n",
      "Finished Task with config: {'x.choice': 35, 'y.choice': 3} and reward: 0.0504673076568524\n",
      "Finished Task with config: {'x.choice': 47, 'y.choice': 33} and reward: 0.2750937946184699\n",
      "Finished Task with config: {'x.choice': 13, 'y.choice': 14} and reward: 0.13533701014994517\n",
      "Finished Task with config: {'x.choice': 96, 'y.choice': 29} and reward: 0.2758898564576822\n",
      "Finished Task with config: {'x.choice': 83, 'y.choice': 69} and reward: 0.12274250309885887\n",
      "Finished Task with config: {'x.choice': 12, 'y.choice': 34} and reward: 0.42221929543875725\n",
      "Finished Task with config: {'x.choice': 3, 'y.choice': 50} and reward: 0.615132219279273\n",
      "Finished Task with config: {'x.choice': 77, 'y.choice': 58} and reward: 0.36889792287225265\n",
      "Finished Task with config: {'x.choice': 58, 'y.choice': 6} and reward: 0.03538408038486149\n",
      "Finished Task with config: {'x.choice': 82, 'y.choice': 53} and reward: 0.4904234509695421\n",
      "Finished Task with config: {'x.choice': 91, 'y.choice': 48} and reward: 0.45285830976801994\n",
      "Finished Task with config: {'x.choice': 26, 'y.choice': 32} and reward: 0.3942166012977996\n",
      "Finished Task with config: {'x.choice': 1, 'y.choice': 13} and reward: 0.0977522870230673\n",
      "Finished Task with config: {'x.choice': 84, 'y.choice': 53} and reward: 0.4702676612206675\n",
      "Finished Task with config: {'x.choice': 20, 'y.choice': 27} and reward: 0.31491730595491674\n",
      "Finished Task with config: {'x.choice': 15, 'y.choice': 24} and reward: 0.2610948328590352\n",
      "Finished Task with config: {'x.choice': 22, 'y.choice': 89} and reward: 0.7954161662874779\n",
      "Finished Task with config: {'x.choice': 41, 'y.choice': 27} and reward: 0.2299085819512913\n",
      "Finished Task with config: {'x.choice': 91, 'y.choice': 27} and reward: 0.34416707058605106\n",
      "Finished Task with config: {'x.choice': 62, 'y.choice': 17} and reward: 0.1239193294698609\n",
      "Finished Task with config: {'x.choice': 1, 'y.choice': 87} and reward: 0.6216867833637846\n",
      "Finished Task with config: {'x.choice': 99, 'y.choice': 78} and reward: 0.013568552796556445\n",
      "Finished Task with config: {'x.choice': 67, 'y.choice': 28} and reward: 0.3747899063676695\n",
      "Finished Task with config: {'x.choice': 30, 'y.choice': 59} and reward: 0.8550319031280962\n",
      "Finished Task with config: {'x.choice': 9, 'y.choice': 55} and reward: 0.7871009193863628\n",
      "Finished Task with config: {'x.choice': 49, 'y.choice': 43} and reward: 0.38106504185835943\n",
      "Finished Task with config: {'x.choice': 58, 'y.choice': 88} and reward: 0.2519156236451825\n",
      "Finished Task with config: {'x.choice': 25, 'y.choice': 29} and reward: 0.34292308114614106\n",
      "Finished Task with config: {'x.choice': 23, 'y.choice': 35} and reward: 0.46183422765776094\n",
      "Finished Task with config: {'x.choice': 8, 'y.choice': 34} and reward: 0.3955226535550609\n",
      "Finished Task with config: {'x.choice': 69, 'y.choice': 80} and reward: 0.14179851660728188\n",
      "Finished Task with config: {'x.choice': 66, 'y.choice': 14} and reward: 0.10416741370431903\n",
      "Finished Task with config: {'x.choice': 33, 'y.choice': 11} and reward: 0.09924778448533042\n",
      "Finished Task with config: {'x.choice': 82, 'y.choice': 5} and reward: 0.03550676440003028\n",
      "Finished Task with config: {'x.choice': 12, 'y.choice': 44} and reward: 0.6220501371104364\n",
      "Finished Task with config: {'x.choice': 76, 'y.choice': 65} and reward: 0.2170809265006471\n",
      "Finished Task with config: {'x.choice': 22, 'y.choice': 37} and reward: 0.5048022995373052\n",
      "Finished Task with config: {'x.choice': 22, 'y.choice': 78} and reward: 0.9576614998040759\n",
      "Finished Task with config: {'x.choice': 61, 'y.choice': 11} and reward: 0.06346301931064673\n",
      "Finished Task with config: {'x.choice': 0, 'y.choice': 29} and reward: 0.2522952168964778\n",
      "Finished Task with config: {'x.choice': 91, 'y.choice': 34} and reward: 0.48001842766991537\n",
      "Finished Task with config: {'x.choice': 99, 'y.choice': 34} and reward: 0.262180852984684\n",
      "Finished Task with config: {'x.choice': 72, 'y.choice': 5} and reward: 0.03574297684766019\n",
      "Finished Task with config: {'x.choice': 85, 'y.choice': 78} and reward: 0.048321012218460316\n",
      "Finished Task with config: {'x.choice': 28, 'y.choice': 34} and reward: 0.422954811087139\n",
      "Finished Task with config: {'x.choice': 64, 'y.choice': 35} and reward: 0.4424900012075118\n",
      "Finished Task with config: {'x.choice': 44, 'y.choice': 88} and reward: 0.5104131320190602\n",
      "Finished Task with config: {'x.choice': 94, 'y.choice': 66} and reward: 0.09046017189752054\n",
      "Finished Task with config: {'x.choice': 99, 'y.choice': 45} and reward: 0.270835452233008\n",
      "Finished Task with config: {'x.choice': 19, 'y.choice': 50} and reward: 0.7782150031892251\n",
      "Finished Task with config: {'x.choice': 99, 'y.choice': 49} and reward: 0.2365002650182732\n",
      "Finished Task with config: {'x.choice': 42, 'y.choice': 81} and reward: 0.6248312828863247\n",
      "Finished Task with config: {'x.choice': 32, 'y.choice': 48} and reward: 0.6588929379971539\n",
      "Finished Task with config: {'x.choice': 50, 'y.choice': 62} and reward: 0.48284566777021504\n",
      "Finished Task with config: {'x.choice': 24, 'y.choice': 66} and reward: 0.9772535009446728\n",
      "Finished Task with config: {'x.choice': 18, 'y.choice': 52} and reward: 0.8140568481329096\n",
      "Finished Task with config: {'x.choice': 54, 'y.choice': 25} and reward: 0.18337287279837702\n",
      "Finished Task with config: {'x.choice': 23, 'y.choice': 3} and reward: 0.060033111496479725\n",
      "Finished Task with config: {'x.choice': 72, 'y.choice': 67} and reward: 0.20578225561327793\n",
      "Finished Task with config: {'x.choice': 14, 'y.choice': 66} and reward: 0.9613802657883243\n",
      "Finished Task with config: {'x.choice': 6, 'y.choice': 70} and reward: 0.8521438726119842\n",
      "Finished Task with config: {'x.choice': 83, 'y.choice': 24} and reward: 0.3713285104423093\n",
      "Finished Task with config: {'x.choice': 37, 'y.choice': 0} and reward: 0.03706755594751672\n",
      "Finished Task with config: {'x.choice': 72, 'y.choice': 77} and reward: 0.12613889505974818\n",
      "Finished Task with config: {'x.choice': 63, 'y.choice': 26} and reward: 0.27413200038281543\n",
      "Finished Task with config: {'x.choice': 19, 'y.choice': 13} and reward: 0.13115667757104404\n",
      "Finished Task with config: {'x.choice': 89, 'y.choice': 27} and reward: 0.38114280842030296\n",
      "Finished Task with config: {'x.choice': 13, 'y.choice': 19} and reward: 0.189075558317391\n",
      "Finished Task with config: {'x.choice': 77, 'y.choice': 96} and reward: 0.0464708502272967\n",
      "Finished Task with config: {'x.choice': 52, 'y.choice': 39} and reward: 0.33610284826387193\n",
      "Finished Task with config: {'x.choice': 0, 'y.choice': 62} and reward: 0.6931349412323088\n",
      "Finished Task with config: {'x.choice': 13, 'y.choice': 16} and reward: 0.1552861522645142\n",
      "Finished Task with config: {'x.choice': 40, 'y.choice': 28} and reward: 0.2484858892144882\n",
      "Finished Task with config: {'x.choice': 8, 'y.choice': 93} and reward: 0.6387922351340045\n",
      "Finished Task with config: {'x.choice': 77, 'y.choice': 65} and reward: 0.2128633520194423\n",
      "Finished Task with config: {'x.choice': 17, 'y.choice': 98} and reward: 0.6081419668256237\n",
      "Finished Task with config: {'x.choice': 94, 'y.choice': 80} and reward: 0.018606014290258453\n",
      "Finished Task with config: {'x.choice': 78, 'y.choice': 79} and reward: 0.07647318682853012\n",
      "Finished Task with config: {'x.choice': 47, 'y.choice': 12} and reward: 0.07384595392118531\n",
      "Finished Task with config: {'x.choice': 45, 'y.choice': 3} and reward: 0.03737224970580994\n",
      "Finished Task with config: {'x.choice': 16, 'y.choice': 83} and reward: 0.8880866625117498\n",
      "Finished Task with config: {'x.choice': 5, 'y.choice': 10} and reward: 0.08771408288006977\n",
      "Finished Task with config: {'x.choice': 30, 'y.choice': 31} and reward: 0.35730547491802944\n",
      "Finished Task with config: {'x.choice': 58, 'y.choice': 86} and reward: 0.263218899747299\n",
      "Finished Task with config: {'x.choice': 16, 'y.choice': 46} and reward: 0.6886459183180196\n",
      "Finished Task with config: {'x.choice': 63, 'y.choice': 86} and reward: 0.19007592666888654\n",
      "Finished Task with config: {'x.choice': 48, 'y.choice': 54} and reward: 0.48248021119102014\n",
      "Finished Task with config: {'x.choice': 32, 'y.choice': 34} and reward: 0.39753707790143394\n",
      "Finished Task with config: {'x.choice': 66, 'y.choice': 53} and reward: 0.4294444266412223\n",
      "Finished Task with config: {'x.choice': 30, 'y.choice': 73} and reward: 0.9165297368656665\n",
      "Finished Task with config: {'x.choice': 56, 'y.choice': 53} and reward: 0.3984929774216336\n",
      "Finished Task with config: {'x.choice': 34, 'y.choice': 3} and reward: 0.05164341553430852\n",
      "Finished Task with config: {'x.choice': 60, 'y.choice': 75} and reward: 0.2787130695748779\n",
      "Finished Task with config: {'x.choice': 31, 'y.choice': 57} and reward: 0.8159761999870314\n",
      "Finished Task with config: {'x.choice': 43, 'y.choice': 36} and reward: 0.3372124729772617\n",
      "Finished Task with config: {'x.choice': 27, 'y.choice': 8} and reward: 0.08699146857892112\n",
      "Finished Task with config: {'x.choice': 55, 'y.choice': 49} and reward: 0.39908712897072024\n",
      "Finished Task with config: {'x.choice': 86, 'y.choice': 19} and reward: 0.21804248959690348\n",
      "Finished Task with config: {'x.choice': 68, 'y.choice': 44} and reward: 0.5691509355998997\n",
      "Finished Task with config: {'x.choice': 23, 'y.choice': 58} and reward: 0.9073336136570783\n",
      "Finished Task with config: {'x.choice': 0, 'y.choice': 85} and reward: 0.6267825482824576\n",
      "Finished Task with config: {'x.choice': 41, 'y.choice': 58} and reward: 0.644577030506701\n",
      "Finished Task with config: {'x.choice': 37, 'y.choice': 22} and reward: 0.1901967469539091\n",
      "Finished Task with config: {'x.choice': 86, 'y.choice': 72} and reward: 0.07793968921976802\n",
      "Finished Task with config: {'x.choice': 15, 'y.choice': 13} and reward: 0.12860489468155503\n",
      "Finished Task with config: {'x.choice': 28, 'y.choice': 14} and reward: 0.13383795142718508\n",
      "Finished Task with config: {'x.choice': 43, 'y.choice': 65} and reward: 0.6440365214478603\n",
      "Finished Task with config: {'x.choice': 4, 'y.choice': 35} and reward: 0.37734188015118414\n",
      "Finished Task with config: {'x.choice': 31, 'y.choice': 36} and reward: 0.44153316627586836\n",
      "Finished Task with config: {'x.choice': 42, 'y.choice': 13} and reward: 0.09147432144102777\n",
      "Finished Task with config: {'x.choice': 40, 'y.choice': 99} and reward: 0.4264967138565337\n",
      "Finished Task with config: {'x.choice': 0, 'y.choice': 8} and reward: 0.06528254919217902\n",
      "Finished Task with config: {'x.choice': 12, 'y.choice': 8} and reward: 0.0858856183615245\n",
      "Finished Task with config: {'x.choice': 66, 'y.choice': 21} and reward: 0.21355518108101884\n",
      "Finished Task with config: {'x.choice': 23, 'y.choice': 29} and reward: 0.3473126776299789\n",
      "Finished Task with config: {'x.choice': 49, 'y.choice': 14} and reward: 0.08258496162692987\n",
      "Finished Task with config: {'x.choice': 22, 'y.choice': 36} and reward: 0.48410378448493746\n",
      "Finished Task with config: {'x.choice': 29, 'y.choice': 11} and reward: 0.10640086731297486\n",
      "Finished Task with config: {'x.choice': 3, 'y.choice': 55} and reward: 0.6862295028008462\n",
      "Finished Task with config: {'x.choice': 3, 'y.choice': 65} and reward: 0.7775997880433094\n",
      "Finished Task with config: {'x.choice': 16, 'y.choice': 52} and reward: 0.8061063575714768\n",
      "Finished Task with config: {'x.choice': 6, 'y.choice': 11} and reward: 0.09675009181911025\n",
      "Finished Task with config: {'x.choice': 12, 'y.choice': 27} and reward: 0.29883752393209057\n",
      "Finished Task with config: {'x.choice': 56, 'y.choice': 98} and reward: 0.21271849829205827\n",
      "Finished Task with config: {'x.choice': 34, 'y.choice': 6} and reward: 0.06607089578449302\n",
      "Finished Task with config: {'x.choice': 14, 'y.choice': 5} and reward: 0.0692519523813817\n",
      "Finished Task with config: {'x.choice': 72, 'y.choice': 24} and reward: 0.34383967653869346\n",
      "Finished Task with config: {'x.choice': 75, 'y.choice': 81} and reward: 0.08830835804845094\n",
      "Finished Task with config: {'x.choice': 30, 'y.choice': 99} and reward: 0.5448431952103038\n",
      "Finished Task with config: {'x.choice': 26, 'y.choice': 85} and reward: 0.84365707889387\n",
      "Finished Task with config: {'x.choice': 72, 'y.choice': 82} and reward: 0.10777576153573477\n",
      "Finished Task with config: {'x.choice': 15, 'y.choice': 12} and reward: 0.11968561464344903\n",
      "Finished Task with config: {'x.choice': 45, 'y.choice': 69} and reward: 0.6039970692708915\n",
      "Finished Task with config: {'x.choice': 66, 'y.choice': 74} and reward: 0.19981990356753995\n",
      "Finished Task with config: {'x.choice': 60, 'y.choice': 60} and reward: 0.34919194433323364\n",
      "Finished Task with config: {'x.choice': 92, 'y.choice': 1} and reward: 0.011639047146287128\n",
      "Finished Task with config: {'x.choice': 26, 'y.choice': 21} and reward: 0.21672661025009773\n",
      "Finished Task with config: {'x.choice': 71, 'y.choice': 13} and reward: 0.10809889744895908\n",
      "Finished Task with config: {'x.choice': 19, 'y.choice': 26} and reward: 0.29799306074493315\n",
      "Finished Task with config: {'x.choice': 28, 'y.choice': 92} and reward: 0.7013532774705856\n",
      "Finished Task with config: {'x.choice': 66, 'y.choice': 95} and reward: 0.12049812063172237\n",
      "Finished Task with config: {'x.choice': 31, 'y.choice': 56} and reward: 0.8024084642184506\n",
      "Finished Task with config: {'x.choice': 2, 'y.choice': 48} and reward: 0.5672304983702181\n",
      "Finished Task with config: {'x.choice': 84, 'y.choice': 91} and reward: 0.027810089203728017\n",
      "Finished Task with config: {'x.choice': 6, 'y.choice': 21} and reward: 0.19002050221944503\n",
      "Finished Task with config: {'x.choice': 71, 'y.choice': 43} and reward: 0.6348194897748445\n",
      "Finished Task with config: {'x.choice': 64, 'y.choice': 60} and reward: 0.3292027657514489\n",
      "Finished Task with config: {'x.choice': 45, 'y.choice': 47} and reward: 0.46031752055696745\n",
      "Finished Task with config: {'x.choice': 63, 'y.choice': 96} and reward: 0.14500825128578496\n",
      "Finished Task with config: {'x.choice': 43, 'y.choice': 82} and reward: 0.5937072165360853\n",
      "Finished Task with config: {'x.choice': 62, 'y.choice': 13} and reward: 0.0814265323917204\n",
      "Finished Task with config: {'x.choice': 95, 'y.choice': 58} and reward: 0.18669272634635975\n",
      "Finished Task with config: {'x.choice': 54, 'y.choice': 24} and reward: 0.17181528759700893\n",
      "Finished Task with config: {'x.choice': 21, 'y.choice': 74} and reward: 0.9892484241569526\n",
      "Finished Task with config: {'x.choice': 34, 'y.choice': 63} and reward: 0.8273828744585284\n",
      "Finished Task with config: {'x.choice': 78, 'y.choice': 59} and reward: 0.34056529453780127\n",
      "Finished Task with config: {'x.choice': 30, 'y.choice': 60} and reward: 0.8662700150890429\n",
      "Finished Task with config: {'x.choice': 62, 'y.choice': 35} and reward: 0.4027154752104314\n",
      "Finished Task with config: {'x.choice': 44, 'y.choice': 64} and reward: 0.6174673498873866\n",
      "Finished Task with config: {'x.choice': 87, 'y.choice': 34} and reward: 0.577388256370085\n",
      "Finished Task with config: {'x.choice': 88, 'y.choice': 54} and reward: 0.3849837273534476\n",
      "Finished Task with config: {'x.choice': 46, 'y.choice': 11} and reward: 0.0701371139100669\n",
      "Finished Task with config: {'x.choice': 83, 'y.choice': 67} and reward: 0.1495619412367777\n",
      "Finished Task with config: {'x.choice': 30, 'y.choice': 46} and reward: 0.6442208025051402\n",
      "Finished Task with config: {'x.choice': 99, 'y.choice': 61} and reward: 0.10008882307752684\n",
      "Finished Task with config: {'x.choice': 31, 'y.choice': 93} and reward: 0.6509007283688762\n",
      "Finished Task with config: {'x.choice': 70, 'y.choice': 26} and reward: 0.37272230919772764\n",
      "Finished Task with config: {'x.choice': 9, 'y.choice': 3} and reward: 0.05478169861246052\n",
      "Finished Task with config: {'x.choice': 9, 'y.choice': 34} and reward: 0.4030195645957341\n",
      "Finished Task with config: {'x.choice': 25, 'y.choice': 81} and reward: 0.908439329242738\n",
      "Finished Task with config: {'x.choice': 51, 'y.choice': 13} and reward: 0.07371733812765496\n",
      "Finished Task with config: {'x.choice': 81, 'y.choice': 59} and reward: 0.3276388460773206\n",
      "Finished Task with config: {'x.choice': 47, 'y.choice': 39} and reward: 0.34836629793831275\n",
      "Finished Task with config: {'x.choice': 74, 'y.choice': 65} and reward: 0.22517779975698538\n",
      "Finished Task with config: {'x.choice': 70, 'y.choice': 10} and reward: 0.07115324120513727\n",
      "Finished Task with config: {'x.choice': 74, 'y.choice': 42} and reward: 0.6900619815083064\n",
      "Finished Task with config: {'x.choice': 16, 'y.choice': 77} and reward: 0.9572550890388047\n",
      "Finished Task with config: {'x.choice': 99, 'y.choice': 98} and reward: 0.0038181010317488617\n",
      "Finished Task with config: {'x.choice': 24, 'y.choice': 90} and reward: 0.7686953648934934\n",
      "Finished Task with config: {'x.choice': 28, 'y.choice': 88} and reward: 0.7751167629603042\n",
      "Finished Task with config: {'x.choice': 90, 'y.choice': 78} and reward: 0.0323450720817524\n",
      "Finished Task with config: {'x.choice': 67, 'y.choice': 2} and reward: 0.021567702474792505\n",
      "Finished Task with config: {'x.choice': 18, 'y.choice': 77} and reward: 0.9666790690639753\n",
      "Finished Task with config: {'x.choice': 30, 'y.choice': 40} and reward: 0.5264691218581865\n",
      "Finished Task with config: {'x.choice': 95, 'y.choice': 9} and reward: 0.037082668971462486\n",
      "Finished Task with config: {'x.choice': 35, 'y.choice': 83} and reward: 0.7488322283210068\n",
      "Finished Task with config: {'x.choice': 51, 'y.choice': 94} and reward: 0.3184446611372852\n",
      "Finished Task with config: {'x.choice': 30, 'y.choice': 2} and reward: 0.0512561738087554\n",
      "Finished Task with config: {'x.choice': 59, 'y.choice': 63} and reward: 0.3421329998979634\n",
      "Finished Task with config: {'x.choice': 48, 'y.choice': 30} and reward: 0.23612353696555333\n",
      "Finished Task with config: {'x.choice': 88, 'y.choice': 98} and reward: 0.014188968238367967\n",
      "Finished Task with config: {'x.choice': 58, 'y.choice': 56} and reward: 0.38225041397094073\n",
      "Finished Task with config: {'x.choice': 6, 'y.choice': 99} and reward: 0.5037752717478299\n",
      "Finished Task with config: {'x.choice': 57, 'y.choice': 36} and reward: 0.3380232718694122\n",
      "Finished Task with config: {'x.choice': 45, 'y.choice': 84} and reward: 0.5314124472045574\n",
      "Finished Task with config: {'x.choice': 60, 'y.choice': 71} and reward: 0.29400204735114693\n",
      "Finished Task with config: {'x.choice': 91, 'y.choice': 82} and reward: 0.021206869246037135\n",
      "Finished Task with config: {'x.choice': 91, 'y.choice': 31} and reward: 0.4287632248991212\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Finished Task with config: {'x.choice': 6, 'y.choice': 98} and reward: 0.522045776937697\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Finished Task with config: {'x.choice': 22, 'y.choice': 42} and reward: 0.6107835341537289\n",
      "Finished Task with config: {'x.choice': 91, 'y.choice': 19} and reward: 0.17496937137404278\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Best config: {'x.choice': 17, 'y.choice': 72}, best reward: 0.9902040382974465\n"
     ]
    }
   ],
   "source": [
    "random_scheduler = ag.scheduler.FIFOScheduler(rl_simulation,\n",
    "                                              resource={'num_cpus': 1, 'num_gpus': 0},\n",
    "                                              num_trials=300,\n",
    "                                              reward_attr=\"accuracy\",\n",
    "                                              resume=False)\n",
    "random_scheduler.run()\n",
    "random_scheduler.join_jobs()\n",
    "print('Best config: {}, best reward: {}'.format(random_scheduler.get_best_config(), random_scheduler.get_best_reward()))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Reinforcement Learning"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Reserved DistributedResource(\n",
      "\tNode = Remote REMOTE_ID: 0, \n",
      "\t<Remote: 'inproc://172.16.17.200/11794/1' processes=1 threads=8, memory=64.38 GB>\n",
      "\tnCPUs = 0) in Remote REMOTE_ID: 0, \n",
      "\t<Remote: 'inproc://172.16.17.200/11794/1' processes=1 threads=8, memory=64.38 GB>\n",
      "Starting Experiments\n",
      "Num of Finished Tasks is 0\n",
      "Num of Pending Tasks is 300\n"
     ]
    },
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "81fcded18e9d4d259c94daf54158dc97",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "VBox(children=(HBox(children=(IntProgress(value=0, max=76), HTML(value=''))), HTML(value='')))"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Finished Task with config: {'x.choice': 54, 'y.choice': 60} and reward: 0.4131320021194963\n",
      "Finished Task with config: {'x.choice': 59, 'y.choice': 85} and reward: 0.25248241948989986\n",
      "Finished Task with config: {'x.choice': 71, 'y.choice': 54} and reward: 0.452177348673922\n",
      "Finished Task with config: {'x.choice': 84, 'y.choice': 84} and reward: 0.03655423885462522\n",
      "Finished Task with config: {'x.choice': 42, 'y.choice': 43} and reward: 0.44561928050295485\n",
      "Finished Task with config: {'x.choice': 62, 'y.choice': 29} and reward: 0.3129734289166378\n",
      "Finished Task with config: {'x.choice': 64, 'y.choice': 89} and reward: 0.16521724999224768\n",
      "Finished Task with config: {'x.choice': 38, 'y.choice': 5} and reward: 0.055140459703497166\n",
      "Finished Task with config: {'x.choice': 96, 'y.choice': 79} and reward: 0.01675323386032184\n",
      "Finished Task with config: {'x.choice': 27, 'y.choice': 80} and reward: 0.9025895808289532\n",
      "Finished Task with config: {'x.choice': 38, 'y.choice': 52} and reward: 0.6328227532925973\n",
      "Finished Task with config: {'x.choice': 47, 'y.choice': 47} and reward: 0.4369372160417949\n",
      "Finished Task with config: {'x.choice': 39, 'y.choice': 33} and reward: 0.3257993021856096\n",
      "Finished Task with config: {'x.choice': 56, 'y.choice': 7} and reward: 0.039952445147950336\n",
      "Finished Task with config: {'x.choice': 92, 'y.choice': 8} and reward: 0.03906803139561688\n",
      "Finished Task with config: {'x.choice': 83, 'y.choice': 64} and reward: 0.2004520333101668\n",
      "Finished Task with config: {'x.choice': 2, 'y.choice': 77} and reward: 0.7444461288479184\n",
      "Finished Task with config: {'x.choice': 36, 'y.choice': 14} and reward: 0.11531548824101008\n",
      "Finished Task with config: {'x.choice': 95, 'y.choice': 87} and reward: 0.010053264415937721\n",
      "Finished Task with config: {'x.choice': 83, 'y.choice': 86} and reward: 0.03682398109240761\n",
      "Finished Task with config: {'x.choice': 97, 'y.choice': 46} and reward: 0.3161396814775167\n",
      "Finished Task with config: {'x.choice': 46, 'y.choice': 52} and reward: 0.4974644053536026\n",
      "Finished Task with config: {'x.choice': 79, 'y.choice': 77} and reward: 0.07935556115551717\n",
      "Finished Task with config: {'x.choice': 79, 'y.choice': 67} and reward: 0.17085551866906823\n",
      "Finished Task with config: {'x.choice': 11, 'y.choice': 15} and reward: 0.14131830986160224\n",
      "Finished Task with config: {'x.choice': 71, 'y.choice': 53} and reward: 0.47455256379247157\n",
      "Finished Task with config: {'x.choice': 63, 'y.choice': 94} and reward: 0.15444995894372754\n",
      "Finished Task with config: {'x.choice': 57, 'y.choice': 75} and reward: 0.33073294541320397\n",
      "Finished Task with config: {'x.choice': 51, 'y.choice': 26} and reward: 0.18846597355335637\n",
      "Finished Task with config: {'x.choice': 40, 'y.choice': 76} and reward: 0.7058736551652897\n",
      "Finished Task with config: {'x.choice': 10, 'y.choice': 19} and reward: 0.18136358228461952\n",
      "Finished Task with config: {'x.choice': 46, 'y.choice': 72} and reward: 0.5774605629951269\n",
      "Finished Task with config: {'x.choice': 44, 'y.choice': 1} and reward: 0.03249007863969159\n",
      "Finished Task with config: {'x.choice': 21, 'y.choice': 33} and reward: 0.4247735686936988\n",
      "Finished Task with config: {'x.choice': 55, 'y.choice': 60} and reward: 0.39956895655479624\n",
      "Finished Task with config: {'x.choice': 13, 'y.choice': 16} and reward: 0.1552861522645142\n",
      "Finished Task with config: {'x.choice': 60, 'y.choice': 94} and reward: 0.18915413038019477\n",
      "Finished Task with config: {'x.choice': 21, 'y.choice': 90} and reward: 0.77816551129998\n",
      "Finished Task with config: {'x.choice': 60, 'y.choice': 67} and reward: 0.3109689510968434\n",
      "Finished Task with config: {'x.choice': 37, 'y.choice': 45} and reward: 0.5408988749006151\n",
      "Finished Task with config: {'x.choice': 34, 'y.choice': 69} and reward: 0.8520424635717397\n",
      "Finished Task with config: {'x.choice': 60, 'y.choice': 11} and reward: 0.06220932769716972\n",
      "Finished Task with config: {'x.choice': 42, 'y.choice': 6} and reward: 0.05312575413313245\n",
      "Finished Task with config: {'x.choice': 89, 'y.choice': 97} and reward: 0.013178123417393045\n",
      "Finished Task with config: {'x.choice': 66, 'y.choice': 14} and reward: 0.10416741370431903\n",
      "Finished Task with config: {'x.choice': 65, 'y.choice': 38} and reward: 0.49583631011448265\n",
      "Finished Task with config: {'x.choice': 66, 'y.choice': 23} and reward: 0.2529084027182172\n",
      "Finished Task with config: {'x.choice': 16, 'y.choice': 74} and reward: 0.9772040425573253\n",
      "Finished Task with config: {'x.choice': 30, 'y.choice': 57} and reward: 0.829886169891878\n",
      "Finished Task with config: {'x.choice': 59, 'y.choice': 3} and reward: 0.025054518512878866\n",
      "Finished Task with config: {'x.choice': 35, 'y.choice': 46} and reward: 0.5846609186365146\n",
      "Finished Task with config: {'x.choice': 31, 'y.choice': 62} and reward: 0.8709395257996267\n",
      "Finished Task with config: {'x.choice': 98, 'y.choice': 25} and reward: 0.17939595099821065\n",
      "Finished Task with config: {'x.choice': 95, 'y.choice': 63} and reward: 0.11610891252206063\n",
      "Finished Task with config: {'x.choice': 9, 'y.choice': 20} and reward: 0.18989747667591955\n",
      "Finished Task with config: {'x.choice': 64, 'y.choice': 99} and reward: 0.12178118688087612\n",
      "Finished Task with config: {'x.choice': 63, 'y.choice': 50} and reward: 0.4368457895739434\n",
      "Finished Task with config: {'x.choice': 55, 'y.choice': 52} and reward: 0.4028107985736251\n",
      "Finished Task with config: {'x.choice': 24, 'y.choice': 31} and reward: 0.3817091079995325\n",
      "Finished Task with config: {'x.choice': 40, 'y.choice': 62} and reward: 0.6969580893232793\n",
      "Finished Task with config: {'x.choice': 10, 'y.choice': 20} and reward: 0.19318127651343833\n",
      "Finished Task with config: {'x.choice': 16, 'y.choice': 67} and reward: 0.9814913209712314\n",
      "Finished Task with config: {'x.choice': 65, 'y.choice': 76} and reward: 0.20282352738135428\n",
      "Finished Task with config: {'x.choice': 32, 'y.choice': 40} and reward: 0.5087969233381394\n",
      "Finished Task with config: {'x.choice': 19, 'y.choice': 78} and reward: 0.9600071681988102\n",
      "Finished Task with config: {'x.choice': 93, 'y.choice': 1} and reward: 0.010896047938056276\n",
      "Finished Task with config: {'x.choice': 34, 'y.choice': 15} and reward: 0.12939423666456223\n",
      "Finished Task with config: {'x.choice': 63, 'y.choice': 62} and reward: 0.31372800819230695\n",
      "Finished Task with config: {'x.choice': 81, 'y.choice': 96} and reward: 0.031703038768058744\n",
      "Finished Task with config: {'x.choice': 65, 'y.choice': 84} and reward: 0.17254207043832434\n",
      "Finished Task with config: {'x.choice': 9, 'y.choice': 52} and reward: 0.7398755445448225\n",
      "Finished Task with config: {'x.choice': 97, 'y.choice': 54} and reward: 0.21495484912430388\n",
      "Finished Task with config: {'x.choice': 97, 'y.choice': 72} and reward: 0.03416132366430215\n",
      "Finished Task with config: {'x.choice': 5, 'y.choice': 3} and reward: 0.05032274511975561\n",
      "Finished Task with config: {'x.choice': 55, 'y.choice': 9} and reward: 0.04922766858232881\n",
      "Finished Task with config: {'x.choice': 41, 'y.choice': 52} and reward: 0.5806808361616504\n",
      "Finished Task with config: {'x.choice': 27, 'y.choice': 45} and reward: 0.650688955916307\n",
      "Finished Task with config: {'x.choice': 97, 'y.choice': 53} and reward: 0.22935714262309276\n",
      "Finished Task with config: {'x.choice': 12, 'y.choice': 24} and reward: 0.2529076252482878\n",
      "Finished Task with config: {'x.choice': 32, 'y.choice': 69} and reward: 0.8888090750132936\n",
      "Finished Task with config: {'x.choice': 85, 'y.choice': 40} and reward: 0.6756957290216257\n",
      "Finished Task with config: {'x.choice': 29, 'y.choice': 18} and reward: 0.1730263130667964\n",
      "Finished Task with config: {'x.choice': 37, 'y.choice': 69} and reward: 0.7901920138784992\n",
      "Finished Task with config: {'x.choice': 88, 'y.choice': 58} and reward: 0.286327467312913\n",
      "Finished Task with config: {'x.choice': 48, 'y.choice': 55} and reward: 0.488952436424344\n",
      "Finished Task with config: {'x.choice': 82, 'y.choice': 90} and reward: 0.03511541242031658\n",
      "Finished Task with config: {'x.choice': 24, 'y.choice': 31} and reward: 0.3817091079995325\n",
      "Finished Task with config: {'x.choice': 44, 'y.choice': 90} and reward: 0.48670585177293596\n",
      "Finished Task with config: {'x.choice': 89, 'y.choice': 62} and reward: 0.19018552350948792\n",
      "Finished Task with config: {'x.choice': 48, 'y.choice': 50} and reward: 0.4527992474270069\n",
      "Finished Task with config: {'x.choice': 8, 'y.choice': 4} and reward: 0.058422749634424065\n",
      "Finished Task with config: {'x.choice': 26, 'y.choice': 74} and reward: 0.9614044025404535\n",
      "Finished Task with config: {'x.choice': 16, 'y.choice': 46} and reward: 0.6886459183180196\n",
      "Finished Task with config: {'x.choice': 54, 'y.choice': 49} and reward: 0.4009235733031741\n",
      "Finished Task with config: {'x.choice': 63, 'y.choice': 45} and reward: 0.46885050272174905\n",
      "Finished Task with config: {'x.choice': 77, 'y.choice': 52} and reward: 0.5350782292847762\n",
      "Finished Task with config: {'x.choice': 46, 'y.choice': 69} and reward: 0.5802833298863385\n",
      "Finished Task with config: {'x.choice': 44, 'y.choice': 52} and reward: 0.5294533508693043\n",
      "Finished Task with config: {'x.choice': 17, 'y.choice': 45} and reward: 0.6717131358286801\n",
      "Finished Task with config: {'x.choice': 2, 'y.choice': 12} and reward: 0.0937625707459735\n",
      "Finished Task with config: {'x.choice': 53, 'y.choice': 69} and reward: 0.42463765730607606\n",
      "Finished Task with config: {'x.choice': 43, 'y.choice': 52} and reward: 0.5462230869026983\n",
      "Finished Task with config: {'x.choice': 25, 'y.choice': 74} and reward: 0.9700697273516173\n",
      "Finished Task with config: {'x.choice': 55, 'y.choice': 52} and reward: 0.4028107985736251\n",
      "Finished Task with config: {'x.choice': 23, 'y.choice': 52} and reward: 0.8108532667658626\n",
      "Finished Task with config: {'x.choice': 61, 'y.choice': 69} and reward: 0.2880558719901152\n",
      "Finished Task with config: {'x.choice': 41, 'y.choice': 52} and reward: 0.5806808361616504\n",
      "Finished Task with config: {'x.choice': 32, 'y.choice': 52} and reward: 0.7276509087726585\n",
      "Finished Task with config: {'x.choice': 21, 'y.choice': 52} and reward: 0.8161012247440166\n",
      "Finished Task with config: {'x.choice': 88, 'y.choice': 69} and reward: 0.09579273174126507\n",
      "Finished Task with config: {'x.choice': 78, 'y.choice': 52} and reward: 0.5359258876938673\n",
      "Finished Task with config: {'x.choice': 47, 'y.choice': 74} and reward: 0.5485750572832516\n",
      "Finished Task with config: {'x.choice': 46, 'y.choice': 52} and reward: 0.4974644053536026\n",
      "Finished Task with config: {'x.choice': 16, 'y.choice': 52} and reward: 0.8061063575714768\n",
      "Finished Task with config: {'x.choice': 55, 'y.choice': 52} and reward: 0.4028107985736251\n",
      "Finished Task with config: {'x.choice': 27, 'y.choice': 52} and reward: 0.7850991782603625\n",
      "Finished Task with config: {'x.choice': 72, 'y.choice': 52} and reward: 0.5059934264424871\n",
      "Finished Task with config: {'x.choice': 21, 'y.choice': 74} and reward: 0.9892484241569526\n",
      "Finished Task with config: {'x.choice': 38, 'y.choice': 52} and reward: 0.6328227532925973\n",
      "Finished Task with config: {'x.choice': 27, 'y.choice': 52} and reward: 0.7850991782603625\n",
      "Finished Task with config: {'x.choice': 46, 'y.choice': 74} and reward: 0.5723229680537476\n",
      "Finished Task with config: {'x.choice': 40, 'y.choice': 52} and reward: 0.5981207041323738\n",
      "Finished Task with config: {'x.choice': 35, 'y.choice': 52} and reward: 0.6827438813536933\n",
      "Finished Task with config: {'x.choice': 33, 'y.choice': 52} and reward: 0.713395029404709\n",
      "Finished Task with config: {'x.choice': 30, 'y.choice': 52} and reward: 0.7536095770338388\n",
      "Finished Task with config: {'x.choice': 37, 'y.choice': 52} and reward: 0.6498556852950799\n",
      "Finished Task with config: {'x.choice': 37, 'y.choice': 52} and reward: 0.6498556852950799\n",
      "Finished Task with config: {'x.choice': 32, 'y.choice': 52} and reward: 0.7276509087726585\n",
      "Finished Task with config: {'x.choice': 37, 'y.choice': 52} and reward: 0.6498556852950799\n",
      "Finished Task with config: {'x.choice': 21, 'y.choice': 52} and reward: 0.8161012247440166\n",
      "Finished Task with config: {'x.choice': 21, 'y.choice': 52} and reward: 0.8161012247440166\n",
      "Finished Task with config: {'x.choice': 27, 'y.choice': 74} and reward: 0.9512641104822159\n",
      "Finished Task with config: {'x.choice': 16, 'y.choice': 52} and reward: 0.8061063575714768\n",
      "Finished Task with config: {'x.choice': 16, 'y.choice': 52} and reward: 0.8061063575714768\n",
      "Finished Task with config: {'x.choice': 21, 'y.choice': 52} and reward: 0.8161012247440166\n",
      "Finished Task with config: {'x.choice': 16, 'y.choice': 52} and reward: 0.8061063575714768\n",
      "Finished Task with config: {'x.choice': 31, 'y.choice': 52} and reward: 0.7410814359404405\n",
      "Finished Task with config: {'x.choice': 32, 'y.choice': 52} and reward: 0.7276509087726585\n",
      "Finished Task with config: {'x.choice': 16, 'y.choice': 52} and reward: 0.8061063575714768\n",
      "Finished Task with config: {'x.choice': 80, 'y.choice': 52} and reward: 0.5316010536952981\n",
      "Finished Task with config: {'x.choice': 46, 'y.choice': 52} and reward: 0.4974644053536026\n",
      "Finished Task with config: {'x.choice': 16, 'y.choice': 74} and reward: 0.9772040425573253\n",
      "Finished Task with config: {'x.choice': 21, 'y.choice': 74} and reward: 0.9892484241569526\n",
      "Finished Task with config: {'x.choice': 16, 'y.choice': 52} and reward: 0.8061063575714768\n",
      "Finished Task with config: {'x.choice': 35, 'y.choice': 52} and reward: 0.6827438813536933\n",
      "Finished Task with config: {'x.choice': 27, 'y.choice': 52} and reward: 0.7850991782603625\n",
      "Finished Task with config: {'x.choice': 31, 'y.choice': 74} and reward: 0.8970279379062928\n",
      "Finished Task with config: {'x.choice': 21, 'y.choice': 52} and reward: 0.8161012247440166\n",
      "Finished Task with config: {'x.choice': 27, 'y.choice': 52} and reward: 0.7850991782603625\n",
      "Finished Task with config: {'x.choice': 21, 'y.choice': 74} and reward: 0.9892484241569526\n",
      "Finished Task with config: {'x.choice': 93, 'y.choice': 74} and reward: 0.038273278217563975\n",
      "Finished Task with config: {'x.choice': 32, 'y.choice': 52} and reward: 0.7276509087726585\n",
      "Finished Task with config: {'x.choice': 16, 'y.choice': 52} and reward: 0.8061063575714768\n",
      "Finished Task with config: {'x.choice': 21, 'y.choice': 74} and reward: 0.9892484241569526\n",
      "Finished Task with config: {'x.choice': 21, 'y.choice': 74} and reward: 0.9892484241569526\n",
      "Finished Task with config: {'x.choice': 16, 'y.choice': 74} and reward: 0.9772040425573253\n",
      "Finished Task with config: {'x.choice': 27, 'y.choice': 74} and reward: 0.9512641104822159\n",
      "Finished Task with config: {'x.choice': 21, 'y.choice': 52} and reward: 0.8161012247440166\n",
      "Finished Task with config: {'x.choice': 21, 'y.choice': 52} and reward: 0.8161012247440166\n",
      "Finished Task with config: {'x.choice': 16, 'y.choice': 74} and reward: 0.9772040425573253\n",
      "Finished Task with config: {'x.choice': 21, 'y.choice': 52} and reward: 0.8161012247440166\n",
      "Finished Task with config: {'x.choice': 21, 'y.choice': 74} and reward: 0.9892484241569526\n",
      "Finished Task with config: {'x.choice': 21, 'y.choice': 74} and reward: 0.9892484241569526\n",
      "Finished Task with config: {'x.choice': 21, 'y.choice': 74} and reward: 0.9892484241569526\n",
      "Finished Task with config: {'x.choice': 32, 'y.choice': 52} and reward: 0.7276509087726585\n",
      "Finished Task with config: {'x.choice': 16, 'y.choice': 74} and reward: 0.9772040425573253\n",
      "Finished Task with config: {'x.choice': 21, 'y.choice': 74} and reward: 0.9892484241569526\n",
      "Finished Task with config: {'x.choice': 16, 'y.choice': 74} and reward: 0.9772040425573253\n",
      "Finished Task with config: {'x.choice': 21, 'y.choice': 74} and reward: 0.9892484241569526\n",
      "Finished Task with config: {'x.choice': 21, 'y.choice': 74} and reward: 0.9892484241569526\n",
      "Finished Task with config: {'x.choice': 16, 'y.choice': 74} and reward: 0.9772040425573253\n",
      "Finished Task with config: {'x.choice': 21, 'y.choice': 74} and reward: 0.9892484241569526\n",
      "Finished Task with config: {'x.choice': 16, 'y.choice': 74} and reward: 0.9772040425573253\n",
      "Finished Task with config: {'x.choice': 16, 'y.choice': 74} and reward: 0.9772040425573253\n",
      "Finished Task with config: {'x.choice': 16, 'y.choice': 74} and reward: 0.9772040425573253\n",
      "Finished Task with config: {'x.choice': 16, 'y.choice': 74} and reward: 0.9772040425573253\n",
      "Finished Task with config: {'x.choice': 21, 'y.choice': 74} and reward: 0.9892484241569526\n",
      "Finished Task with config: {'x.choice': 21, 'y.choice': 74} and reward: 0.9892484241569526\n",
      "Finished Task with config: {'x.choice': 21, 'y.choice': 74} and reward: 0.9892484241569526\n",
      "Finished Task with config: {'x.choice': 21, 'y.choice': 74} and reward: 0.9892484241569526\n",
      "Finished Task with config: {'x.choice': 21, 'y.choice': 74} and reward: 0.9892484241569526\n",
      "Finished Task with config: {'x.choice': 16, 'y.choice': 74} and reward: 0.9772040425573253\n",
      "Finished Task with config: {'x.choice': 21, 'y.choice': 74} and reward: 0.9892484241569526\n",
      "Finished Task with config: {'x.choice': 16, 'y.choice': 74} and reward: 0.9772040425573253\n",
      "Finished Task with config: {'x.choice': 16, 'y.choice': 74} and reward: 0.9772040425573253\n",
      "Finished Task with config: {'x.choice': 21, 'y.choice': 74} and reward: 0.9892484241569526\n",
      "Finished Task with config: {'x.choice': 21, 'y.choice': 74} and reward: 0.9892484241569526\n",
      "Finished Task with config: {'x.choice': 21, 'y.choice': 74} and reward: 0.9892484241569526\n",
      "Finished Task with config: {'x.choice': 21, 'y.choice': 74} and reward: 0.9892484241569526\n",
      "Finished Task with config: {'x.choice': 21, 'y.choice': 74} and reward: 0.9892484241569526\n",
      "Finished Task with config: {'x.choice': 16, 'y.choice': 74} and reward: 0.9772040425573253\n",
      "Finished Task with config: {'x.choice': 21, 'y.choice': 74} and reward: 0.9892484241569526\n",
      "Finished Task with config: {'x.choice': 16, 'y.choice': 74} and reward: 0.9772040425573253\n",
      "Finished Task with config: {'x.choice': 16, 'y.choice': 74} and reward: 0.9772040425573253\n",
      "Finished Task with config: {'x.choice': 21, 'y.choice': 74} and reward: 0.9892484241569526\n",
      "Finished Task with config: {'x.choice': 21, 'y.choice': 74} and reward: 0.9892484241569526\n",
      "Finished Task with config: {'x.choice': 16, 'y.choice': 74} and reward: 0.9772040425573253\n",
      "Finished Task with config: {'x.choice': 21, 'y.choice': 74} and reward: 0.9892484241569526\n",
      "Finished Task with config: {'x.choice': 16, 'y.choice': 74} and reward: 0.9772040425573253\n",
      "Finished Task with config: {'x.choice': 16, 'y.choice': 74} and reward: 0.9772040425573253\n",
      "Finished Task with config: {'x.choice': 21, 'y.choice': 74} and reward: 0.9892484241569526\n",
      "Finished Task with config: {'x.choice': 16, 'y.choice': 74} and reward: 0.9772040425573253\n",
      "Finished Task with config: {'x.choice': 21, 'y.choice': 74} and reward: 0.9892484241569526\n",
      "Finished Task with config: {'x.choice': 21, 'y.choice': 74} and reward: 0.9892484241569526\n",
      "Finished Task with config: {'x.choice': 16, 'y.choice': 74} and reward: 0.9772040425573253\n",
      "Finished Task with config: {'x.choice': 16, 'y.choice': 74} and reward: 0.9772040425573253\n",
      "Finished Task with config: {'x.choice': 21, 'y.choice': 74} and reward: 0.9892484241569526\n",
      "Finished Task with config: {'x.choice': 21, 'y.choice': 74} and reward: 0.9892484241569526\n",
      "Finished Task with config: {'x.choice': 21, 'y.choice': 74} and reward: 0.9892484241569526\n",
      "Finished Task with config: {'x.choice': 21, 'y.choice': 74} and reward: 0.9892484241569526\n",
      "Finished Task with config: {'x.choice': 21, 'y.choice': 74} and reward: 0.9892484241569526\n",
      "Finished Task with config: {'x.choice': 21, 'y.choice': 74} and reward: 0.9892484241569526\n",
      "Finished Task with config: {'x.choice': 21, 'y.choice': 74} and reward: 0.9892484241569526\n",
      "Finished Task with config: {'x.choice': 21, 'y.choice': 74} and reward: 0.9892484241569526\n",
      "Finished Task with config: {'x.choice': 16, 'y.choice': 74} and reward: 0.9772040425573253\n",
      "Finished Task with config: {'x.choice': 16, 'y.choice': 74} and reward: 0.9772040425573253\n",
      "Finished Task with config: {'x.choice': 16, 'y.choice': 74} and reward: 0.9772040425573253\n",
      "Finished Task with config: {'x.choice': 21, 'y.choice': 74} and reward: 0.9892484241569526\n",
      "Finished Task with config: {'x.choice': 16, 'y.choice': 74} and reward: 0.9772040425573253\n",
      "Finished Task with config: {'x.choice': 21, 'y.choice': 74} and reward: 0.9892484241569526\n",
      "Finished Task with config: {'x.choice': 16, 'y.choice': 74} and reward: 0.9772040425573253\n",
      "Finished Task with config: {'x.choice': 21, 'y.choice': 74} and reward: 0.9892484241569526\n",
      "Finished Task with config: {'x.choice': 21, 'y.choice': 74} and reward: 0.9892484241569526\n",
      "Finished Task with config: {'x.choice': 16, 'y.choice': 74} and reward: 0.9772040425573253\n",
      "Finished Task with config: {'x.choice': 16, 'y.choice': 74} and reward: 0.9772040425573253\n",
      "Finished Task with config: {'x.choice': 21, 'y.choice': 74} and reward: 0.9892484241569526\n",
      "Finished Task with config: {'x.choice': 21, 'y.choice': 74} and reward: 0.9892484241569526\n",
      "Finished Task with config: {'x.choice': 21, 'y.choice': 74} and reward: 0.9892484241569526\n",
      "Finished Task with config: {'x.choice': 21, 'y.choice': 74} and reward: 0.9892484241569526\n",
      "Finished Task with config: {'x.choice': 16, 'y.choice': 74} and reward: 0.9772040425573253\n",
      "Finished Task with config: {'x.choice': 21, 'y.choice': 74} and reward: 0.9892484241569526\n",
      "Finished Task with config: {'x.choice': 21, 'y.choice': 74} and reward: 0.9892484241569526\n",
      "Finished Task with config: {'x.choice': 21, 'y.choice': 74} and reward: 0.9892484241569526\n",
      "Finished Task with config: {'x.choice': 21, 'y.choice': 74} and reward: 0.9892484241569526\n",
      "Finished Task with config: {'x.choice': 16, 'y.choice': 74} and reward: 0.9772040425573253\n",
      "Finished Task with config: {'x.choice': 21, 'y.choice': 74} and reward: 0.9892484241569526\n",
      "Finished Task with config: {'x.choice': 21, 'y.choice': 74} and reward: 0.9892484241569526\n",
      "Finished Task with config: {'x.choice': 21, 'y.choice': 74} and reward: 0.9892484241569526\n",
      "Finished Task with config: {'x.choice': 21, 'y.choice': 74} and reward: 0.9892484241569526\n",
      "Finished Task with config: {'x.choice': 16, 'y.choice': 74} and reward: 0.9772040425573253\n",
      "Finished Task with config: {'x.choice': 21, 'y.choice': 74} and reward: 0.9892484241569526\n",
      "Finished Task with config: {'x.choice': 21, 'y.choice': 74} and reward: 0.9892484241569526\n",
      "Finished Task with config: {'x.choice': 16, 'y.choice': 74} and reward: 0.9772040425573253\n",
      "Finished Task with config: {'x.choice': 21, 'y.choice': 74} and reward: 0.9892484241569526\n",
      "Finished Task with config: {'x.choice': 21, 'y.choice': 74} and reward: 0.9892484241569526\n",
      "Finished Task with config: {'x.choice': 21, 'y.choice': 74} and reward: 0.9892484241569526\n",
      "Finished Task with config: {'x.choice': 21, 'y.choice': 74} and reward: 0.9892484241569526\n",
      "Finished Task with config: {'x.choice': 21, 'y.choice': 74} and reward: 0.9892484241569526\n",
      "Finished Task with config: {'x.choice': 16, 'y.choice': 74} and reward: 0.9772040425573253\n",
      "Finished Task with config: {'x.choice': 16, 'y.choice': 74} and reward: 0.9772040425573253\n",
      "Finished Task with config: {'x.choice': 21, 'y.choice': 74} and reward: 0.9892484241569526\n",
      "Finished Task with config: {'x.choice': 16, 'y.choice': 74} and reward: 0.9772040425573253\n",
      "Finished Task with config: {'x.choice': 21, 'y.choice': 74} and reward: 0.9892484241569526\n",
      "Finished Task with config: {'x.choice': 21, 'y.choice': 74} and reward: 0.9892484241569526\n",
      "Finished Task with config: {'x.choice': 21, 'y.choice': 74} and reward: 0.9892484241569526\n",
      "Finished Task with config: {'x.choice': 16, 'y.choice': 74} and reward: 0.9772040425573253\n",
      "Finished Task with config: {'x.choice': 21, 'y.choice': 74} and reward: 0.9892484241569526\n",
      "Finished Task with config: {'x.choice': 21, 'y.choice': 74} and reward: 0.9892484241569526\n",
      "Finished Task with config: {'x.choice': 16, 'y.choice': 74} and reward: 0.9772040425573253\n",
      "Finished Task with config: {'x.choice': 21, 'y.choice': 74} and reward: 0.9892484241569526\n",
      "Finished Task with config: {'x.choice': 21, 'y.choice': 74} and reward: 0.9892484241569526\n",
      "Finished Task with config: {'x.choice': 21, 'y.choice': 74} and reward: 0.9892484241569526\n",
      "Finished Task with config: {'x.choice': 16, 'y.choice': 74} and reward: 0.9772040425573253\n",
      "Finished Task with config: {'x.choice': 16, 'y.choice': 74} and reward: 0.9772040425573253\n",
      "Finished Task with config: {'x.choice': 21, 'y.choice': 74} and reward: 0.9892484241569526\n",
      "Finished Task with config: {'x.choice': 21, 'y.choice': 74} and reward: 0.9892484241569526\n",
      "Finished Task with config: {'x.choice': 21, 'y.choice': 74} and reward: 0.9892484241569526\n",
      "Finished Task with config: {'x.choice': 21, 'y.choice': 74} and reward: 0.9892484241569526\n",
      "Finished Task with config: {'x.choice': 16, 'y.choice': 74} and reward: 0.9772040425573253\n",
      "Finished Task with config: {'x.choice': 21, 'y.choice': 74} and reward: 0.9892484241569526\n",
      "Finished Task with config: {'x.choice': 21, 'y.choice': 74} and reward: 0.9892484241569526\n",
      "Finished Task with config: {'x.choice': 21, 'y.choice': 74} and reward: 0.9892484241569526\n",
      "Finished Task with config: {'x.choice': 21, 'y.choice': 74} and reward: 0.9892484241569526\n",
      "Finished Task with config: {'x.choice': 21, 'y.choice': 74} and reward: 0.9892484241569526\n",
      "Finished Task with config: {'x.choice': 21, 'y.choice': 74} and reward: 0.9892484241569526\n",
      "Finished Task with config: {'x.choice': 21, 'y.choice': 74} and reward: 0.9892484241569526\n",
      "Finished Task with config: {'x.choice': 21, 'y.choice': 74} and reward: 0.9892484241569526\n",
      "Finished Task with config: {'x.choice': 21, 'y.choice': 74} and reward: 0.9892484241569526\n",
      "Finished Task with config: {'x.choice': 21, 'y.choice': 74} and reward: 0.9892484241569526\n",
      "Finished Task with config: {'x.choice': 21, 'y.choice': 74} and reward: 0.9892484241569526\n",
      "Finished Task with config: {'x.choice': 21, 'y.choice': 74} and reward: 0.9892484241569526\n",
      "Finished Task with config: {'x.choice': 21, 'y.choice': 74} and reward: 0.9892484241569526\n",
      "Finished Task with config: {'x.choice': 21, 'y.choice': 74} and reward: 0.9892484241569526\n",
      "Finished Task with config: {'x.choice': 21, 'y.choice': 74} and reward: 0.9892484241569526\n",
      "Finished Task with config: {'x.choice': 21, 'y.choice': 74} and reward: 0.9892484241569526\n",
      "Finished Task with config: {'x.choice': 21, 'y.choice': 74} and reward: 0.9892484241569526\n",
      "Finished Task with config: {'x.choice': 21, 'y.choice': 74} and reward: 0.9892484241569526\n",
      "Finished Task with config: {'x.choice': 21, 'y.choice': 74} and reward: 0.9892484241569526\n",
      "Finished Task with config: {'x.choice': 21, 'y.choice': 74} and reward: 0.9892484241569526\n",
      "Finished Task with config: {'x.choice': 16, 'y.choice': 74} and reward: 0.9772040425573253\n",
      "Finished Task with config: {'x.choice': 21, 'y.choice': 74} and reward: 0.9892484241569526\n",
      "Finished Task with config: {'x.choice': 21, 'y.choice': 74} and reward: 0.9892484241569526\n",
      "Finished Task with config: {'x.choice': 21, 'y.choice': 74} and reward: 0.9892484241569526\n",
      "Finished Task with config: {'x.choice': 21, 'y.choice': 74} and reward: 0.9892484241569526\n",
      "Finished Task with config: {'x.choice': 21, 'y.choice': 74} and reward: 0.9892484241569526\n",
      "Finished Task with config: {'x.choice': 21, 'y.choice': 74} and reward: 0.9892484241569526\n",
      "Finished Task with config: {'x.choice': 21, 'y.choice': 74} and reward: 0.9892484241569526\n",
      "Finished Task with config: {'x.choice': 21, 'y.choice': 74} and reward: 0.9892484241569526\n",
      "Finished Task with config: {'x.choice': 21, 'y.choice': 74} and reward: 0.9892484241569526\n",
      "Finished Task with config: {'x.choice': 21, 'y.choice': 74} and reward: 0.9892484241569526\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\n",
      "Best config: {'x.choice': 21, 'y.choice': 74}, best reward: 0.9892484241569526\n"
     ]
    }
   ],
   "source": [
    "rl_scheduler = ag.scheduler.RLScheduler(rl_simulation,\n",
    "                                        resource={'num_cpus': 1, 'num_gpus': 0},\n",
    "                                        num_trials=300,\n",
    "                                        reward_attr=\"accuracy\",\n",
    "                                        controller_batch_size=4,\n",
    "                                        controller_lr=5e-3)\n",
    "rl_scheduler.run()\n",
    "rl_scheduler.join_jobs()\n",
    "print('Best config: {}, best reward: {}'.format(rl_scheduler.get_best_config(), rl_scheduler.get_best_reward()))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Compare the performance\n",
    "\n",
    "Get the result history:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [],
   "source": [
    "results_rl = [v[0]['accuracy'] for v in rl_scheduler.training_history.values()]\n",
    "results_random = [v[0]['accuracy'] for v in random_scheduler.training_history.values()]"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Average result every 10 trials:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [],
   "source": [
    "import statistics\n",
    "results1 = [statistics.mean(results_random[i:i+10]) for i in range(0, len(results_random), 10)]\n",
    "results2 = [statistics.mean(results_rl[i:i+10]) for i in range(0, len(results_rl), 10)]"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Plot the results:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[<matplotlib.lines.Line2D at 0x7f8c8f24e490>,\n",
       " <matplotlib.lines.Line2D at 0x7f8c8f19ac10>]"
      ]
     },
     "execution_count": 14,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.plot(range(len(results1)), results1, range(len(results2)), results2)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "conda_autogluon",
   "language": "python",
   "name": "conda_autogluon"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.7.7"
  },
  "widgets": {
   "application/vnd.jupyter.widget-state+json": {
    "state": {
     "007a2b05b419488188577cddf655bd51": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "1.5.0",
      "model_name": "HBoxModel",
      "state": {
       "_dom_classes": [],
       "_model_module": "@jupyter-widgets/controls",
       "_model_module_version": "1.5.0",
       "_model_name": "HBoxModel",
       "_view_count": null,
       "_view_module": "@jupyter-widgets/controls",
       "_view_module_version": "1.5.0",
       "_view_name": "HBoxView",
       "box_style": "",
       "children": [
        "IPY_MODEL_2913174c300a49209333f8d78bfb3eb3",
        "IPY_MODEL_9118cf568b394092a13b9f301a366df6"
       ],
       "layout": "IPY_MODEL_b2ae5b6d0f094d468fe29ba4c4b0bb70"
      }
     },
     "0ca781c4a80f40aa92dec87811ddccd9": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "1.5.0",
      "model_name": "DescriptionStyleModel",
      "state": {
       "_model_module": "@jupyter-widgets/controls",
       "_model_module_version": "1.5.0",
       "_model_name": "DescriptionStyleModel",
       "_view_count": null,
       "_view_module": "@jupyter-widgets/base",
       "_view_module_version": "1.2.0",
       "_view_name": "StyleView",
       "description_width": ""
      }
     },
     "0dbaddce238443c48f85e22408cbc8cc": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "1.5.0",
      "model_name": "ProgressStyleModel",
      "state": {
       "_model_module": "@jupyter-widgets/controls",
       "_model_module_version": "1.5.0",
       "_model_name": "ProgressStyleModel",
       "_view_count": null,
       "_view_module": "@jupyter-widgets/base",
       "_view_module_version": "1.2.0",
       "_view_name": "StyleView",
       "bar_color": null,
       "description_width": "initial"
      }
     },
     "2913174c300a49209333f8d78bfb3eb3": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "1.5.0",
      "model_name": "FloatProgressModel",
      "state": {
       "_dom_classes": [],
       "_model_module": "@jupyter-widgets/controls",
       "_model_module_version": "1.5.0",
       "_model_name": "FloatProgressModel",
       "_view_count": null,
       "_view_module": "@jupyter-widgets/controls",
       "_view_module_version": "1.5.0",
       "_view_name": "ProgressView",
       "bar_style": "success",
       "description": "100%",
       "description_tooltip": null,
       "layout": "IPY_MODEL_2d31efa83a344f8098de0e6d36d65039",
       "max": 300,
       "min": 0,
       "orientation": "horizontal",
       "style": "IPY_MODEL_0dbaddce238443c48f85e22408cbc8cc",
       "value": 300
      }
     },
     "2d31efa83a344f8098de0e6d36d65039": {
      "model_module": "@jupyter-widgets/base",
      "model_module_version": "1.2.0",
      "model_name": "LayoutModel",
      "state": {
       "_model_module": "@jupyter-widgets/base",
       "_model_module_version": "1.2.0",
       "_model_name": "LayoutModel",
       "_view_count": null,
       "_view_module": "@jupyter-widgets/base",
       "_view_module_version": "1.2.0",
       "_view_name": "LayoutView",
       "align_content": null,
       "align_items": null,
       "align_self": null,
       "border": null,
       "bottom": null,
       "display": null,
       "flex": null,
       "flex_flow": null,
       "grid_area": null,
       "grid_auto_columns": null,
       "grid_auto_flow": null,
       "grid_auto_rows": null,
       "grid_column": null,
       "grid_gap": null,
       "grid_row": null,
       "grid_template_areas": null,
       "grid_template_columns": null,
       "grid_template_rows": null,
       "height": null,
       "justify_content": null,
       "justify_items": null,
       "left": null,
       "margin": null,
       "max_height": null,
       "max_width": null,
       "min_height": null,
       "min_width": null,
       "object_fit": null,
       "object_position": null,
       "order": null,
       "overflow": null,
       "overflow_x": null,
       "overflow_y": null,
       "padding": null,
       "right": null,
       "top": null,
       "visibility": null,
       "width": null
      }
     },
     "3d727c2dd15341a6a06a4465e04b892b": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "1.5.0",
      "model_name": "HTMLModel",
      "state": {
       "_dom_classes": [],
       "_model_module": "@jupyter-widgets/controls",
       "_model_module_version": "1.5.0",
       "_model_name": "HTMLModel",
       "_view_count": null,
       "_view_module": "@jupyter-widgets/controls",
       "_view_module_version": "1.5.0",
       "_view_name": "HTMLView",
       "description": "",
       "description_tooltip": null,
       "layout": "IPY_MODEL_698ee64702574a6e9a4ebeb0bbac27b2",
       "placeholder": "​",
       "style": "IPY_MODEL_0ca781c4a80f40aa92dec87811ddccd9",
       "value": " 20/20 [00:21&lt;00:00,  1.09s/it]"
      }
     },
     "5d3991fa58734c338ed56d83c8f2e8d8": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "1.5.0",
      "model_name": "FloatProgressModel",
      "state": {
       "_dom_classes": [],
       "_model_module": "@jupyter-widgets/controls",
       "_model_module_version": "1.5.0",
       "_model_name": "FloatProgressModel",
       "_view_count": null,
       "_view_module": "@jupyter-widgets/controls",
       "_view_module_version": "1.5.0",
       "_view_name": "ProgressView",
       "bar_style": "success",
       "description": "100%",
       "description_tooltip": null,
       "layout": "IPY_MODEL_ee16f1dd36c44e6581f438994e40e07b",
       "max": 20,
       "min": 0,
       "orientation": "horizontal",
       "style": "IPY_MODEL_c9611713a44041c38a44ba8b3efa7264",
       "value": 20
      }
     },
     "698ee64702574a6e9a4ebeb0bbac27b2": {
      "model_module": "@jupyter-widgets/base",
      "model_module_version": "1.2.0",
      "model_name": "LayoutModel",
      "state": {
       "_model_module": "@jupyter-widgets/base",
       "_model_module_version": "1.2.0",
       "_model_name": "LayoutModel",
       "_view_count": null,
       "_view_module": "@jupyter-widgets/base",
       "_view_module_version": "1.2.0",
       "_view_name": "LayoutView",
       "align_content": null,
       "align_items": null,
       "align_self": null,
       "border": null,
       "bottom": null,
       "display": null,
       "flex": null,
       "flex_flow": null,
       "grid_area": null,
       "grid_auto_columns": null,
       "grid_auto_flow": null,
       "grid_auto_rows": null,
       "grid_column": null,
       "grid_gap": null,
       "grid_row": null,
       "grid_template_areas": null,
       "grid_template_columns": null,
       "grid_template_rows": null,
       "height": null,
       "justify_content": null,
       "justify_items": null,
       "left": null,
       "margin": null,
       "max_height": null,
       "max_width": null,
       "min_height": null,
       "min_width": null,
       "object_fit": null,
       "object_position": null,
       "order": null,
       "overflow": null,
       "overflow_x": null,
       "overflow_y": null,
       "padding": null,
       "right": null,
       "top": null,
       "visibility": null,
       "width": null
      }
     },
     "6c72228d88894b438fed6f1a4c3f567b": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "1.5.0",
      "model_name": "DescriptionStyleModel",
      "state": {
       "_model_module": "@jupyter-widgets/controls",
       "_model_module_version": "1.5.0",
       "_model_name": "DescriptionStyleModel",
       "_view_count": null,
       "_view_module": "@jupyter-widgets/base",
       "_view_module_version": "1.2.0",
       "_view_name": "StyleView",
       "description_width": ""
      }
     },
     "7c44478e7e0847709aa0898730b527e9": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "1.5.0",
      "model_name": "DescriptionStyleModel",
      "state": {
       "_model_module": "@jupyter-widgets/controls",
       "_model_module_version": "1.5.0",
       "_model_name": "DescriptionStyleModel",
       "_view_count": null,
       "_view_module": "@jupyter-widgets/base",
       "_view_module_version": "1.2.0",
       "_view_name": "StyleView",
       "description_width": ""
      }
     },
     "9118cf568b394092a13b9f301a366df6": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "1.5.0",
      "model_name": "HTMLModel",
      "state": {
       "_dom_classes": [],
       "_model_module": "@jupyter-widgets/controls",
       "_model_module_version": "1.5.0",
       "_model_name": "HTMLModel",
       "_view_count": null,
       "_view_module": "@jupyter-widgets/controls",
       "_view_module_version": "1.5.0",
       "_view_name": "HTMLView",
       "description": "",
       "description_tooltip": null,
       "layout": "IPY_MODEL_d66146e18dd64ea9a66ab1408d1464b9",
       "placeholder": "​",
       "style": "IPY_MODEL_7c44478e7e0847709aa0898730b527e9",
       "value": " 300/300 [01:00&lt;00:00,  4.94it/s]"
      }
     },
     "aa262f1e4c2642ffb27235a1c16d1fff": {
      "model_module": "@jupyter-widgets/base",
      "model_module_version": "1.2.0",
      "model_name": "LayoutModel",
      "state": {
       "_model_module": "@jupyter-widgets/base",
       "_model_module_version": "1.2.0",
       "_model_name": "LayoutModel",
       "_view_count": null,
       "_view_module": "@jupyter-widgets/base",
       "_view_module_version": "1.2.0",
       "_view_name": "LayoutView",
       "align_content": null,
       "align_items": null,
       "align_self": null,
       "border": null,
       "bottom": null,
       "display": null,
       "flex": null,
       "flex_flow": null,
       "grid_area": null,
       "grid_auto_columns": null,
       "grid_auto_flow": null,
       "grid_auto_rows": null,
       "grid_column": null,
       "grid_gap": null,
       "grid_row": null,
       "grid_template_areas": null,
       "grid_template_columns": null,
       "grid_template_rows": null,
       "height": null,
       "justify_content": null,
       "justify_items": null,
       "left": null,
       "margin": null,
       "max_height": null,
       "max_width": null,
       "min_height": null,
       "min_width": null,
       "object_fit": null,
       "object_position": null,
       "order": null,
       "overflow": null,
       "overflow_x": null,
       "overflow_y": null,
       "padding": null,
       "right": null,
       "top": null,
       "visibility": null,
       "width": null
      }
     },
     "b16cee6fd8b443a7859bf32ccc30c66e": {
      "model_module": "@jupyter-widgets/base",
      "model_module_version": "1.2.0",
      "model_name": "LayoutModel",
      "state": {
       "_model_module": "@jupyter-widgets/base",
       "_model_module_version": "1.2.0",
       "_model_name": "LayoutModel",
       "_view_count": null,
       "_view_module": "@jupyter-widgets/base",
       "_view_module_version": "1.2.0",
       "_view_name": "LayoutView",
       "align_content": null,
       "align_items": null,
       "align_self": null,
       "border": null,
       "bottom": null,
       "display": null,
       "flex": null,
       "flex_flow": null,
       "grid_area": null,
       "grid_auto_columns": null,
       "grid_auto_flow": null,
       "grid_auto_rows": null,
       "grid_column": null,
       "grid_gap": null,
       "grid_row": null,
       "grid_template_areas": null,
       "grid_template_columns": null,
       "grid_template_rows": null,
       "height": null,
       "justify_content": null,
       "justify_items": null,
       "left": null,
       "margin": null,
       "max_height": null,
       "max_width": null,
       "min_height": null,
       "min_width": null,
       "object_fit": null,
       "object_position": null,
       "order": null,
       "overflow": null,
       "overflow_x": null,
       "overflow_y": null,
       "padding": null,
       "right": null,
       "top": null,
       "visibility": null,
       "width": null
      }
     },
     "b2ae5b6d0f094d468fe29ba4c4b0bb70": {
      "model_module": "@jupyter-widgets/base",
      "model_module_version": "1.2.0",
      "model_name": "LayoutModel",
      "state": {
       "_model_module": "@jupyter-widgets/base",
       "_model_module_version": "1.2.0",
       "_model_name": "LayoutModel",
       "_view_count": null,
       "_view_module": "@jupyter-widgets/base",
       "_view_module_version": "1.2.0",
       "_view_name": "LayoutView",
       "align_content": null,
       "align_items": null,
       "align_self": null,
       "border": null,
       "bottom": null,
       "display": null,
       "flex": null,
       "flex_flow": null,
       "grid_area": null,
       "grid_auto_columns": null,
       "grid_auto_flow": null,
       "grid_auto_rows": null,
       "grid_column": null,
       "grid_gap": null,
       "grid_row": null,
       "grid_template_areas": null,
       "grid_template_columns": null,
       "grid_template_rows": null,
       "height": null,
       "justify_content": null,
       "justify_items": null,
       "left": null,
       "margin": null,
       "max_height": null,
       "max_width": null,
       "min_height": null,
       "min_width": null,
       "object_fit": null,
       "object_position": null,
       "order": null,
       "overflow": null,
       "overflow_x": null,
       "overflow_y": null,
       "padding": null,
       "right": null,
       "top": null,
       "visibility": null,
       "width": null
      }
     },
     "b795af44929643f684d9449be2e63bdc": {
      "model_module": "@jupyter-widgets/base",
      "model_module_version": "1.2.0",
      "model_name": "LayoutModel",
      "state": {
       "_model_module": "@jupyter-widgets/base",
       "_model_module_version": "1.2.0",
       "_model_name": "LayoutModel",
       "_view_count": null,
       "_view_module": "@jupyter-widgets/base",
       "_view_module_version": "1.2.0",
       "_view_name": "LayoutView",
       "align_content": null,
       "align_items": null,
       "align_self": null,
       "border": null,
       "bottom": null,
       "display": null,
       "flex": null,
       "flex_flow": null,
       "grid_area": null,
       "grid_auto_columns": null,
       "grid_auto_flow": null,
       "grid_auto_rows": null,
       "grid_column": null,
       "grid_gap": null,
       "grid_row": null,
       "grid_template_areas": null,
       "grid_template_columns": null,
       "grid_template_rows": null,
       "height": null,
       "justify_content": null,
       "justify_items": null,
       "left": null,
       "margin": null,
       "max_height": null,
       "max_width": null,
       "min_height": null,
       "min_width": null,
       "object_fit": null,
       "object_position": null,
       "order": null,
       "overflow": null,
       "overflow_x": null,
       "overflow_y": null,
       "padding": null,
       "right": null,
       "top": null,
       "visibility": null,
       "width": null
      }
     },
     "bce245cdaf62480d89e028a4fd6165a1": {
      "model_module": "@jupyter-widgets/base",
      "model_module_version": "1.2.0",
      "model_name": "LayoutModel",
      "state": {
       "_model_module": "@jupyter-widgets/base",
       "_model_module_version": "1.2.0",
       "_model_name": "LayoutModel",
       "_view_count": null,
       "_view_module": "@jupyter-widgets/base",
       "_view_module_version": "1.2.0",
       "_view_name": "LayoutView",
       "align_content": null,
       "align_items": null,
       "align_self": null,
       "border": null,
       "bottom": null,
       "display": null,
       "flex": null,
       "flex_flow": null,
       "grid_area": null,
       "grid_auto_columns": null,
       "grid_auto_flow": null,
       "grid_auto_rows": null,
       "grid_column": null,
       "grid_gap": null,
       "grid_row": null,
       "grid_template_areas": null,
       "grid_template_columns": null,
       "grid_template_rows": null,
       "height": null,
       "justify_content": null,
       "justify_items": null,
       "left": null,
       "margin": null,
       "max_height": null,
       "max_width": null,
       "min_height": null,
       "min_width": null,
       "object_fit": null,
       "object_position": null,
       "order": null,
       "overflow": null,
       "overflow_x": null,
       "overflow_y": null,
       "padding": null,
       "right": null,
       "top": null,
       "visibility": null,
       "width": null
      }
     },
     "c64583a24e9b49c3b90865e19d7f168e": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "1.5.0",
      "model_name": "HTMLModel",
      "state": {
       "_dom_classes": [],
       "_model_module": "@jupyter-widgets/controls",
       "_model_module_version": "1.5.0",
       "_model_name": "HTMLModel",
       "_view_count": null,
       "_view_module": "@jupyter-widgets/controls",
       "_view_module_version": "1.5.0",
       "_view_name": "HTMLView",
       "description": "",
       "description_tooltip": null,
       "layout": "IPY_MODEL_b795af44929643f684d9449be2e63bdc",
       "placeholder": "​",
       "style": "IPY_MODEL_6c72228d88894b438fed6f1a4c3f567b",
       "value": " 20/20 [00:04&lt;00:00,  4.06it/s]"
      }
     },
     "c6a0800a361545a5b771c5bf28b6ad1c": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "1.5.0",
      "model_name": "HBoxModel",
      "state": {
       "_dom_classes": [],
       "_model_module": "@jupyter-widgets/controls",
       "_model_module_version": "1.5.0",
       "_model_name": "HBoxModel",
       "_view_count": null,
       "_view_module": "@jupyter-widgets/controls",
       "_view_module_version": "1.5.0",
       "_view_name": "HBoxView",
       "box_style": "",
       "children": [
        "IPY_MODEL_5d3991fa58734c338ed56d83c8f2e8d8",
        "IPY_MODEL_c64583a24e9b49c3b90865e19d7f168e"
       ],
       "layout": "IPY_MODEL_bce245cdaf62480d89e028a4fd6165a1"
      }
     },
     "c7cff77761db4e3a8c8e2e9034e9e215": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "1.5.0",
      "model_name": "FloatProgressModel",
      "state": {
       "_dom_classes": [],
       "_model_module": "@jupyter-widgets/controls",
       "_model_module_version": "1.5.0",
       "_model_name": "FloatProgressModel",
       "_view_count": null,
       "_view_module": "@jupyter-widgets/controls",
       "_view_module_version": "1.5.0",
       "_view_name": "ProgressView",
       "bar_style": "success",
       "description": "100%",
       "description_tooltip": null,
       "layout": "IPY_MODEL_aa262f1e4c2642ffb27235a1c16d1fff",
       "max": 20,
       "min": 0,
       "orientation": "horizontal",
       "style": "IPY_MODEL_e3b85b49f47f422485180056e51d34f6",
       "value": 20
      }
     },
     "c9611713a44041c38a44ba8b3efa7264": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "1.5.0",
      "model_name": "ProgressStyleModel",
      "state": {
       "_model_module": "@jupyter-widgets/controls",
       "_model_module_version": "1.5.0",
       "_model_name": "ProgressStyleModel",
       "_view_count": null,
       "_view_module": "@jupyter-widgets/base",
       "_view_module_version": "1.2.0",
       "_view_name": "StyleView",
       "bar_color": null,
       "description_width": "initial"
      }
     },
     "d66146e18dd64ea9a66ab1408d1464b9": {
      "model_module": "@jupyter-widgets/base",
      "model_module_version": "1.2.0",
      "model_name": "LayoutModel",
      "state": {
       "_model_module": "@jupyter-widgets/base",
       "_model_module_version": "1.2.0",
       "_model_name": "LayoutModel",
       "_view_count": null,
       "_view_module": "@jupyter-widgets/base",
       "_view_module_version": "1.2.0",
       "_view_name": "LayoutView",
       "align_content": null,
       "align_items": null,
       "align_self": null,
       "border": null,
       "bottom": null,
       "display": null,
       "flex": null,
       "flex_flow": null,
       "grid_area": null,
       "grid_auto_columns": null,
       "grid_auto_flow": null,
       "grid_auto_rows": null,
       "grid_column": null,
       "grid_gap": null,
       "grid_row": null,
       "grid_template_areas": null,
       "grid_template_columns": null,
       "grid_template_rows": null,
       "height": null,
       "justify_content": null,
       "justify_items": null,
       "left": null,
       "margin": null,
       "max_height": null,
       "max_width": null,
       "min_height": null,
       "min_width": null,
       "object_fit": null,
       "object_position": null,
       "order": null,
       "overflow": null,
       "overflow_x": null,
       "overflow_y": null,
       "padding": null,
       "right": null,
       "top": null,
       "visibility": null,
       "width": null
      }
     },
     "e3b85b49f47f422485180056e51d34f6": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "1.5.0",
      "model_name": "ProgressStyleModel",
      "state": {
       "_model_module": "@jupyter-widgets/controls",
       "_model_module_version": "1.5.0",
       "_model_name": "ProgressStyleModel",
       "_view_count": null,
       "_view_module": "@jupyter-widgets/base",
       "_view_module_version": "1.2.0",
       "_view_name": "StyleView",
       "bar_color": null,
       "description_width": "initial"
      }
     },
     "ee16f1dd36c44e6581f438994e40e07b": {
      "model_module": "@jupyter-widgets/base",
      "model_module_version": "1.2.0",
      "model_name": "LayoutModel",
      "state": {
       "_model_module": "@jupyter-widgets/base",
       "_model_module_version": "1.2.0",
       "_model_name": "LayoutModel",
       "_view_count": null,
       "_view_module": "@jupyter-widgets/base",
       "_view_module_version": "1.2.0",
       "_view_name": "LayoutView",
       "align_content": null,
       "align_items": null,
       "align_self": null,
       "border": null,
       "bottom": null,
       "display": null,
       "flex": null,
       "flex_flow": null,
       "grid_area": null,
       "grid_auto_columns": null,
       "grid_auto_flow": null,
       "grid_auto_rows": null,
       "grid_column": null,
       "grid_gap": null,
       "grid_row": null,
       "grid_template_areas": null,
       "grid_template_columns": null,
       "grid_template_rows": null,
       "height": null,
       "justify_content": null,
       "justify_items": null,
       "left": null,
       "margin": null,
       "max_height": null,
       "max_width": null,
       "min_height": null,
       "min_width": null,
       "object_fit": null,
       "object_position": null,
       "order": null,
       "overflow": null,
       "overflow_x": null,
       "overflow_y": null,
       "padding": null,
       "right": null,
       "top": null,
       "visibility": null,
       "width": null
      }
     },
     "fdd365ec3b194d4fa5b3056a5e329e58": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "1.5.0",
      "model_name": "HBoxModel",
      "state": {
       "_dom_classes": [],
       "_model_module": "@jupyter-widgets/controls",
       "_model_module_version": "1.5.0",
       "_model_name": "HBoxModel",
       "_view_count": null,
       "_view_module": "@jupyter-widgets/controls",
       "_view_module_version": "1.5.0",
       "_view_name": "HBoxView",
       "box_style": "",
       "children": [
        "IPY_MODEL_c7cff77761db4e3a8c8e2e9034e9e215",
        "IPY_MODEL_3d727c2dd15341a6a06a4465e04b892b"
       ],
       "layout": "IPY_MODEL_b16cee6fd8b443a7859bf32ccc30c66e"
      }
     }
    },
    "version_major": 2,
    "version_minor": 0
   }
  }
 },
 "nbformat": 4,
 "nbformat_minor": 4
}
